0

私はscilabが初めてで、行と列の行列の処理方法に取り組んでいます。私が行った場合

 k=1:10;
 d=k*3

私は行を得る

for k=1:10
d=k*3;
disp(d)
end

列を生成します。行行列を必要とする wavewrite 関数を使用したいのですが、コードで条件ステートメントを使用したいのですが、

 k=1:10;
 if k==5
 d=7
 else
 d=k*3

if,else は無視します。2 番目の例で d=d' を転置しようとしましたが、少なくとも転置は表示されません。

4

1 に答える 1

0

古いですが誤解が多いです。

あなたが書くとき:

k=1:10;

変数 k は、1 行 10 列の行列です。つまり一行。

列が必要な場合:

k=(1:10)';

演算子 ' 行列を転置します。

次を使用する場合:

for k=1:10
d=k*3;
disp(d)
end

あなたはコラムを見ていると主張します。画面上の列のように見えるものは、実際には一連のスカラーです。ここで for ループを宣言します。各反復で k はスカラー (行でも列でもありません) です。次に、 d もスカラーであり、画面に表示します。列はありませんが、反復ごとにスカラーがあります。

ついに

 k=1:10;
 if k==5
 d=7
 else
 d=k*3

今回は k は行ですが、if ステートメントは行をスカラーと比較します。期待どおりに動作しないのは当然のことです。

于 2014-02-13T06:14:44.950 に答える