How to solve this error: Error using reshape To RESHAPE the number of elements must not change.

1 次查看(过去 30 天)
I am trying to run the following code but i am getting the error
Error using reshape
To RESHAPE the number of elements must not change.
Error in programm (line 35)
CC =reshape(C{1}, 2304, 3589*2);
Here is the code
clear;
tic;
DataX = zeros(28709,2304,'single');
DataY = zeros(28709,1,'single');
fid = fopen('train.csv');
C = textscan(fid, '%d', 2305, 'Delimiter', '",', 'Headerlines',1, 'MultipleDelimsAsOne', 1);
DataX(1,:) = C{1}(2:end);
DataY(1) = C{1}(1);
for i = 2:28709
if mod(i, 1000) == 0
i;
end
C = textscan(fid, '%d', 2305, 'Delimiter', '",', 'MultipleDelimsAsOne', 1);
DataX(i,:) = C{1}(2:end);
DataY(i) = C{1}(1);
end
fclose(fid);
toc;
DataX = DataX./255;
im = write_grid_images(DataX, [48 48], [10 10], 2, 1);
myfclf(1); imshow(im);
save data.mat DataX DataY;
tic;
fid = fopen('test.csv');
C = textscan(fid, '%s', 'Delimiter', '" ', 'Headerlines',1, 'MultipleDelimsAsOne', 1);
fclose(fid);
toc;
CC =reshape(C{1}, 2304, 3589*2);
TestX = zeros(2304,3589*2,'single');
for i = 1:2304
for j = 1:3589*2
TestX(i,j) = str2double(CC{i,j});
end
end
TestX = TestX'./255;
im = write_grid_images(TestX, [48 48], [10 10], 2, 1);
myfclf(1); imshow(im);
save test.mat TestX;

回答(1 个)

Jan
Jan 2018-1-10
The message means, that C{1} does not have 2304*3589*2 elements. Because we do not have your input file, we cannot check this. But you can do this easily using the debugger. Type this in the command window:
dbstop if error
Then run the code again until it stops at the error. Now check the size of C{1}
size(C{1})
  7 个评论
Guillaume
Guillaume 2018-1-11
How to solve it now
I don't understand why you even ask the question.
Your code make the assumption that there are 2304*3589*2 strings in your file. There aren't 2304*3589*2 strings in your file. You solve that either by providing a file with the right number of elements or by making a different assumption. There's not much we can do about either.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Large Files and Big Data 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by