getting Subscripted assignment dimension mismatch.
조회 수: 8 (최근 30일)
이전 댓글 표시
my codes are as follow :
when i use this , the loop works
for i=1:3
vec=(1+i):(2+i);
mat(i,:)=vec;
vec=[];
end
EDU>> mat
mat =
2 3
3 4
4 5
but when i use this , it shows the error message Subscripted assignment dimension mismatch.
EDU>> for i=1:3
vec=(1+i):(3+i);
mat(i,:)=vec;
vec=[];
end
Subscripted assignment dimension mismatch.
EDU>> for i=1:5
vec=(1+i):(3+i);
mat(i,:)=vec;
vec=[];
end
Subscripted assignment dimension mismatch.
how can i rectify this ? i need this concept for a huge loop and it shows similar error message when i run my code the matrix generally runs until 5th or 6th row
HELP PLEASE !!!
댓글 수: 1
Stephen23
2014년 10월 13일
편집: Stephen23
2014년 10월 13일
Do NOT use i as the loop variable name. This is already the name of the inbuilt imaginary unit . Overriding the inbuilt variable can create difficult-to-fix errors and can be slower to resolve. Using i makes it hard to search for the variable name. Use ii or kk instead.
채택된 답변
Orion
2014년 10월 13일
편집: Orion
2014년 10월 13일
Hi,
if you do
for i=1:3
vec=(1+i):(2+i);
mat(i,:)=vec;
vec=[];
end
for i=1:3
vec=(1+i):(3+i);
mat(i,:)=vec;
vec=[];
end
the you get an error.
You need to clear your workspace or define the mat variable before the loop
for i=1:3
vec=(1+i):(2+i);
mat(i,:)=vec;
vec=[];
end
clear mat
for i=1:3
vec=(1+i):(3+i);
mat(i,:)=vec;
vec=[];
end
The error occurs because after the first loop, mat is a matrix with 2 columns.
And in the second loop, you use a 3 element vector vec to fill the line.
so the dimensions mismatch.
Note : you should put your question in code form, so it is more readable for everyone.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!