- 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 次查看(过去 30 天)
显示 更早的评论
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
采纳的回答
Ahmet Cecen
2016-12-28
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 个评论
Jan
2016-12-28
When this is your purpose, "[X temp]" might not be useful. When the images have different sizes, this command must fail in addition.
更多回答(1 个)
Greg
2016-12-28
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(:);"
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!