2016-05-08 8 views
0

パラメータ化x = ...、y = ...、z = ...(下記参照)でカーブをプロットしたい。私はエラーメッセージ、主に '一貫性のない乗算'を得続けます。私のコードは次のとおりです。Scilab: "inconsistent multiplication"エラーメッセージ

t = linspace(0,4*%pi) 
x = (4+sin(63*t))*cos(3*t) 
y = (4+sin(63*t))*sin(3*t) 
z = cos(3*t) 
param3d(x,y,z) 

私はこのエラーメッセージが表示される理由、またはコードの修正方法を説明できますか?私は関数としてx、y、zを定義しようとしました。 documentation of * operatorから

答えて

0

要素ごとの乗算がx.*y表記します。 xまたはyがスカラー(1x1行列)の場合.**と同じです。

したがって、2つの配列を要素ごとに掛けるため、数式は(4+sin(63*t)).*cos(3*t)と書かれています。ドットがない場合、アスタリスクは行列の乗算を意味し、それは不一致のサイズのために失敗します。

例:

[1, 2] .* [3, 4] // returns [3, 8] 
[1, 2] * [3, 4] // error; one can't multiply a 1-by-2 matrix by another 1-by-2 matrix 

1つはまた3.*tが、ここで書くことができます。ベクトルにスカラーを乗算する方法が1つしかないため、冗長です。