イベント:
r = 600;
n = 17;% 17paragraph
p = [0 -321.79725039 506.40549922];
allgamma = 2.00943006740867
pera = allgamma/(n-1);
f = 0.566081293090563;
for i = 1:n
angle(i) = f + pera*(i-1);
x(i) = p(1);
y(i) = - r * sin(angle(i));
z(i) = r * cos(angle(i));
pp(i) = [x(i),y(i),z(i)];
end
間違い:
- 割り当てられた下付きの寸法が一致しません。
- 代入 A( : ) = B では、A と B の要素の数は同じでなければなりません
原因: pp ( i ) pp(i)pp(i)是存储 [ x ( i ) , y ( i ) , z ( i ) ] [x(i),y(i),z(i)] [ x ( i ) ,y ( i ) 、z ( i ) ]の i 番目の要素pp ( i ) pp(i)p p ( i )は長さ 1 の数値です。なぜなら、このコードではpp ( i ) pp(i)p p ( i )の代入は行ベクトルであり、x 、 y 、 zx、y、z× 、よ、zの各組み合わせには 17 のグループがあり、等号の周囲の要素の数が異なります。したがって、pp ppp p は行列に設定する必要があり、行列の最初の行にはi = 1 i=1私=1の結果nn 番目n行にはi = ni=n私=nの結果。
解決策: pp ( i ) pp(i)
を入力します。pp ( i )の形式は行列の形式、つまり pp ( i , : ) pp(i,:) に変更されます。pp ( i , _:)
r = 600;
n = 17;% 17paragraph
p = [0 -321.79725039 506.40549922];
allgamma = 2.00943006740867
pera = allgamma/(n-1);
f = 0.566081293090563;
for i = 1:n
angle(i) = f + pera*(i-1);
x(i) = p(1);
y(i) = - r * sin(angle(i));
z(i) = r * cos(angle(i));
pp(i,:) = [x(i),y(i),z(i)];
end