?? 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

Antworten (2)

Wayne King
Wayne King am 22 Mär. 2013
Bearbeitet: Wayne King am 22 Mär. 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 Kommentare

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...

Melden Sie sich an, um zu kommentieren.

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

1 Kommentar

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

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Entering Commands finden Sie in Hilfe-Center und File Exchange

Gefragt:

am 22 Mär. 2013

Community Treasure Hunt

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

Start Hunting!

Translated by