getting Subscripted assignment dimension mismatch.

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
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
Orion 2014 年 10 月 13 日
編集済み: Orion 2014 年 10 月 13 日

0 投票

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 件)

カテゴリ

ヘルプ センター および File ExchangeLoops and Conditional Statements についてさらに検索

質問済み:

2014 年 10 月 13 日

編集済み:

2014 年 10 月 13 日

Community Treasure Hunt

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

Start Hunting!

Translated by