- Please format your code properly. It is not difficult. See instructions
- Omit the brute clearing header clear all close all clc. It is inefficient and a bad habit. As soon as you will work with different GUIs, you will hate this darn auto-closing.
- Do not use "path" as a name of a variable. This is an importanmt function of Matlab and it is hard to predict what might happen during debugging.
- Use fullfile instead of strcat to join path names.
- When you write in the forum, that you get an error message, post a complete copy of the message.
- Use the debugger to examine the problems: The error message is clear: you try to transpose a multi-dimensional array. With the debugger you can find out the dimensions of img. Most likely it is a 3D RGB image.
HI All ,Here i want to Reshape 2D images into 1D image vectors , why i get this error ? Error using '?? Transpose on ND array is not defined. Error in testauto (line 14) temp = reshape(img',r*c,1); .please help its urgent Thanks.
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Enayat Ansari
el 28 de Dic. de 2016
Comentada: Walter Roberson
el 3 de En. de 2017
clear all close all clc
path = dir('e:\testImage\*.png'); X = [];
n = length(path);
for i = 1 : n
file = strcat('e:\testImage\',path(i).name);
img = imread(file);
% figure,imshow(img);
[r,c] = size(img);
temp = reshape(img',r*c,1);
X = [X temp];
end
3 comentarios
Respuesta aceptada
Ahmet Cecen
el 28 de Dic. de 2016
Not enough information, but it is likely that the image you are reading is a color image and is actually r by c by 3. I will also speculate you probably want to do:
img = rgb2gray(img);
4 comentarios
Jan
el 28 de Dic. de 2016
When this is your purpose, "[X temp]" might not be useful. When the images have different sizes, this command must fail in addition.
Más respuestas (1)
Greg
el 28 de Dic. de 2016
The error tells you exactly where the problem is: transposing an ND array on line 14. More specifically, the single tick (') operator is matrix transpose. Replace "img'" with "img". temp = reshape(img',r*c,1);
Better way to convert ANYTHING into a single column vector is "temp = img(:);"
Ver también
Categorías
Más información sobre Dimensionality Reduction and Feature Extraction en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!