?? Undefined function or method 'svd' for input arguments of type 'double' and attributes 'full 3d real'.

can someone assist me? i am trying to use the matlabs svd function but it returned an error
"?? Undefined function or method 'svd' for input arguments of type 'double' and attributes 'full 3d real'.".
here is part of the code i was working on:
F=imread(irisFileName); G=im2double(F);
%perform singular value decomposition
xpattern=svd(G);
P=[xpattern' str2num(irisFiles(i).name(1:3))];
T=[T;P];
irisFileName
[size(P) size(T)]
end
end
thanks

Respuestas (2)

Wayne King
Wayne King el 22 de Mzo. de 2013
Editada: Wayne King el 22 de Mzo. de 2013
svd() only works on a 2-D matrix, although I'm surprised by your error message.
I would have expected:
"Error using svd Input must be 2-D."
You are using the MathWorks' svd() function, correct?
If you enter,
>>which svd
you get back some path like:
...matlab\matfun\@single\svd

6 comentarios

here is what displayed:
built-in (C:\Program Files\MATLAB\R2010a\toolbox\matlab\matfun\@single\svd) % single method >>
so is your input 3-D? what is the size of G?
The above does not tell me the size of G. The above only tells me that you have converted F to a double. What does
size(G)
return?
i am very sorry, i don't really know the size of G because i actually got the code online and trying to use it for my project. let me copy the whole code here so that u can see it.
clc;
clear;
%set base directory of irisBasis directory % irisDir = 'D:\MasterCS\CS553\IrisDatabase\IrisBasisAll40'; irisDir = 'C:\Users\livingstone\Desktop\iris'; clc; T=[]; irisFiles = dir(irisDir); for i=1:size(irisFiles,1) if not(strcmp(irisFiles(i).name,'.')|strcmp(irisFiles(i).name,'..')) irisFileName = [irisDir, '\', irisFiles(i).name];
F=imread(irisFileName); G=im2double(F);
%perform singular value decomposition xpattern=svd(G);
P=[xpattern' str2num(irisFiles(i).name(1:3))]; T=[T;P]; irisFileName [size(P) size(T)] end end
save irisBasisSVD T –ASCII
thanks so much for your time...

Iniciar sesión para comentar.

im getting error "Error using svd Input must be 2-D." could u hlp me?

1 comentario

You are probably trying to do svd on an RGB image. You probably need to use rgb2gray() to convert it to grayscale.

Iniciar sesión para comentar.

Categorías

Más información sobre Entering Commands en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 22 de Mzo. de 2013

Comentada:

el 8 de Mayo de 2016

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by