Save each vector iteration into a matrix

Abdur Rahim

Abdur Rahim (view profile)

さんによって質問されました 2016 年 10 月 31 日

Abdur Rahim (view profile)

さんによって コメントされました 2016 年 11 月 1 日
Cory Johnson

Cory Johnson (view profile)

さんの 回答が採用されました
I have 2 vectors, a and b and the sum of both is v.The time t ranges from 0 to 20 and i would like to save each iteration of v (a vector) into a matrix (where there are 21 vectors thus 3x21). Currently this code goes through each iteration however overwrites all of them and only shows the last value of t. Im am also unsure where the 'if' command is suitable in this circumstance.
for t=1:20;
a = [t,cos(t),0]';
b = [0,0,sin(t)]';
v = a + b;
end

0 件のコメント

サインイン to comment.

1 件の回答

Answer by Cory Johnson

Cory Johnson (view profile)

on 1 Nov 2016

There are lots of ways to organize data in MATLAB. Below I have shown 3 ways to do this. I think you're looking for the last method.
%%Cell Array
for t=0:20;
a{t+1} = [t,cos(t),0]';
b{t+1} = [0,0,sin(t)]';
v{t+1} = a{t+1} + b{t+1};
end
%%Structure array
for t=0:20;
vec(t+1).a = [t,cos(t),0]';
vec(t+1).b = [0,0,sin(t)]';
vec(t+1).v = vec(t+1).a + vec(t+1).b;
end
%%Only save v
v = [];
for t=0:20;
a = [t,cos(t),0]';
b = [0,0,sin(t)]';
v = [v, (a + b)];
end
Hope that helps!

Abdur Rahim

Abdur Rahim (view profile)

on 1 Nov 2016
It's greats having all those methods because I can use the format for future codes, its helped me a lot thanks.

サインイン to comment.