Filter löschen
Filter löschen

How to resolve Horzcat error (narrowed it down to one value in the for loop) and output for loop correctly.

1 Ansicht (letzte 30 Tage)
I have the following code. What I want the inner loop to do is calculate DipoleParam = x,y,z,mx,my,mz and put it into the row of a new matrix...i.e. by the end of the inner loop, I should have a 3*7 matrix. Then by the end of the outer loop, I should have two of these 3*7 matrices.
But I keep getting a horzcat error primarily because my c value is always showing as a 1*1...rather than a 1*n....I am just trying to see what the best way to resolve this error is.
Q = 2
Nini = 3
for q = 1:Q
for n = 1:Nini
Range = 2*pi*(rand(n,1));
Radius = 20*sqrt(rand(n,1));
x = 0 + Radius.*cos(Range);
y = 0 + Radius.*sin(Range);
z = -5 +(10)*rand(n,1);
mx = 2000*rand(n,1);
my = 2000*rand(n,1);
mz = 2000*rand(n,1);
c = 5-n
DipoleParam = [Dipolex Dipoley z Mx My Mz c]
end
end

Antworten (1)

David Hill
David Hill am 3 Sep. 2020
Seems to be lots of problems with your code. I likely don't understand everything.
for q = 1:2%I don't see a need for an inner loop
Range = 2*pi*(rand(3,1));%generates 3x1 array
Radius = 20*sqrt(rand(3,1));
x = 0 + Radius.*cos(Range);
y = 0 + Radius.*sin(Range);
z = -5 +(10)*rand(3,1);
mx = 2000*rand(n,1);%3x1 array
my = 2000*rand(n,1);
mz = 2000*rand(n,1);
c = 5-n%I have no ideal what c is suppose to be but it must be a 3x1 array
DipoleParam{q} = [Dipolex Dipoley z Mx My Mz c]%what are Dipolex and Dipoley? not defined anywhere...Is Mx, My, Mz suppose to be mx,my,mz?
end

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by