Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Error using ' Transpose on ND array is not defined?

I am getting error for my below code: temp=reshape(img',irow*icol,1);

   Error message:Error using  ' 
   Transpose on ND array is not defined.

What is solution for this. I think I have to use permute(A,order) command. But I dont know how to use this command in my code. Do you know any solution?

 for i=1:M
str=strcat(int2str(i),'.jpg');   %concatenates two strings that form the name of the image
eval('img=imread(str);');
subplot(ceil(sqrt(M)),ceil(sqrt(M)),i)
imshow(img)
if i==3
    title('Training set','fontsize',18)
end
drawnow;
[irow icol]=size(img);    % get the number of rows (N1) and columns (N2)
temp=reshape(img',irow*icol,1);     %creates a (N1*N2)x1 matrix
S=[S temp];         %X is a N1*N2xM matrix after finishing the sequence
                    %this is our S
end
like image 613
prashanth Avatar asked Jun 12 '26 11:06

prashanth


1 Answers

I assume the code was designed for grey scale images. For matrices with more than two dimensions, you have to use permute. One solution could be:

[irow icol d]=size(img);
temp=reshape(permute(img,[2,1,3]),[irow*icol,d]);

Which results in a nx3 matrix, each column corresponding to one colour. You have to change the last line as well, but I don't know what you are expecting. Maybe take a look at cat

like image 50
Daniel Avatar answered Jun 14 '26 15:06

Daniel