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!