how to create a series of changes over the loop variable and can assign a value to it
1 回表示 (過去 30 日間)
古いコメントを表示
how to create a series of changes over the loop variable and can assign a value to it Example
for r=1:3
A|r| = r
B|r| = A|r+1| + A|r|
end
the result
A1=1
A2=2
A3=3
B1=3
B2=5
...
0 件のコメント
採用された回答
Youssef Khmou
2013 年 5 月 19 日
try :
n=1:30;
A=n;
for r=1:length(n)-1
B(r)=A(r+1)+A(r);
end
plot(A), hold on, plot(B)
3 件のコメント
Youssef Khmou
2013 年 5 月 19 日
hi, In this case, the dimension grows inside the loop so you need to use the cell :
for i=1:4
A{i}=rand(3,4+i);
end
その他の回答 (2 件)
Image Analyst
2013 年 5 月 19 日
You don't have a good condition for when r = the last value, for example, what is A(4) when r only goes to 3. But ignoring that last element, this will work for you:
n=10
A=1:n
B = A + [A(2:end) 0]
In command window:
n =
10
A =
1 2 3 4 5 6 7 8 9 10
B =
3 5 7 9 11 13 15 17 19 10
If you want to add the last element of A then turn the 0 into A(n).
0 件のコメント
Image Analyst
2013 年 5 月 19 日
This works just fine (if that's what you want to do):
clc;
for i=1:4
A{i} = rand(3,4+i)
end
whos A
A =
[3x5 double]
A =
[3x5 double] [3x6 double]
A =
[3x5 double] [3x6 double] [3x7 double]
A =
[3x5 double] [3x6 double] [3x7 double] [3x8 double]
Name Size Bytes Class Attributes
A 1x4 1072 cell
See how it grows with each iteration and the size of the last-added cell is bigger each time? Just what you wanted, right?
3 件のコメント
Image Analyst
2013 年 5 月 22 日
You can't multiply a 3x5 by a 6x3 - it doesn't work. Anyway, I see you've already accepted another answer so I guess you got it solved that way.
参考
カテゴリ
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!