Error using reshape, Size arguments must be real integers.
27 次查看(过去 30 天)
显示 更早的评论
Hi, please, i have a question. every time i run this function on Matlab
my=repmat(mean(reshape(Y,T,N)),T,1);
i got error message saying that:
Error using Reshape.
(size arguments must be real intergers).
How can i solve this problem please ?
0 个评论
采纳的回答
Iain
2013-6-20
You could ensure that T, and N are positive whole numbers...
3 个评论
James Tursa
2013-6-20
T needs to be an integer value. If length(Y) is not a whole multiple of N, then it won't be in your equation for T.
更多回答(1 个)
Yan Jiang
2023-9-12
Check the type of variables T and N and verify they are integer would solve this this problem.
1 个评论
Steven Lord
2023-9-12
The type of T and N isn't what's important, though casting them to an integer type could accidentally resolve the problem. The values of T and N must be integer values. For example, I can reshape an array with 12 elements into a 3-by-4 array:
x = 1:12
y = reshape(x, 3, 4)
But I can't reshape it to have 8 columns because having an array with 1.5 rows doesn't make sense.
try
z = reshape(x, [], 8) % WILL ERROR
catch ME
fprintf("This call threw error:\n%s\n", ME.message)
end
Trying to specify 1.5 rows will throw an error as well.
try
z = reshape(x, 1.5, []) % WILL ERROR
catch ME
fprintf("This call threw error:\n%s\n", ME.message)
end
Nor can I reshape it to have 0 rows.
try
z = reshape(x, 0, []) % WILL ERROR
catch ME
fprintf("This call threw error:\n%s\n", ME.message)
end
A complex number of rows won't work either.
try
z = reshape(x, 3i, []) % WILL ERROR
catch ME
fprintf("This call threw error:\n%s\n", ME.message)
end
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!