6 views (last 30 days)

Show older comments

Hi, another trivial question i guess - i'm a beginner at Matlab.

MATLAB code

Xi = sym('Xi',[1,n2]);

for i=1:1:6

BGx(i,1)=L1*Xi(i);

BGy(i,1)=L5*Xi(i);

end

I want to write the results into a new vector. I tried vertcat and some for loops but it didn't work out.

MATLAB code

BG=vertcat(BGx; BGy);

Here i get a result like (L1*Xi1, L1*Xi2, L1*Xi3, ...., L5*Xi1, ...., L5*Xi6) but i want to get (L1*Xi1, L5*Xi1, L1*Xi2, L5*Xi2, ...., L5*Xi6). Is there a trick when using vertcat or do i need to write a loop. I have the problem that BG has another dimension than the 2 vectors BGx and BGy. Thanks in advance

Niels
on 3 Feb 2017

result = zeros(12,0);

for i=1:1:6

result((i-1)*2+1)=BGx(i,1);

result(i*2)=BGy(i,1);

end

Stephen Cobeldick
on 3 Feb 2017

Edited: Stephen Cobeldick
on 3 Feb 2017

This is MATLAB so why use an ugly loop? MATLAB is much better than that! The code is simpler without it (I also got rid of sym: you don't say why you need it, and numeric operations will be much faster and more efficient):

>> X = [1,2,3,4];

>> L1 = 90;

>> L5 = 10;

>> Z = [L1+X;L5+X];

>> Z = Z(:)'

Z =

91 11 92 12 93 13 94 14

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

Start Hunting!