1

私はこれを聞きたかった:

私がこのマトリックスを持っている場合:

magnetT=NaN(Maxstep,2);  

それに「{01}」を追加したい

どうすれば書くことができますか?

また、これを数学でループに入れている場合:

magnetT[[i]] = {T, Apply[Plus, Flatten[mlat]]/L2}

matlabの同等のものはこれではありませんか?

magnetT(i,2)=[T ,sum(mlat(:))./L2];

それは私に:添え字付き代入次元の不一致を与えるからです。

==> 128magnetT(i、2)= [T、sum(mlat(:))。/L2]での大都市のエラー;

ありがとう

4

1 に答える 1

2

私はあなたの最初の質問と両方の質問に答えようとします。

セル配列である{0,1}の前にNaN配列を追加することについて質問しました。任意のデータオブジェクトをセル配列に簡単にバンドルできます。

>> anyData = NaN(3、2);
>> newCellArray = {anyData; {0、1}}

newCellArray =

    [3x2ダブル]
    {1x2セル}

代わりに、結果を数値マトリックスに連結しようとしている場合は、次のことが役立ちます。

>> Maxstep = 3;
>> MagnetT = NaN(Maxstep、2);
>> newArray = [magnetT; 0 1]

newArray =

   NaN NaN
   NaN NaN
   NaN NaN
     01

2番目の質問では、MATLABは、の1つの要素にベクトルを格納しようとしていることに不満を持っていますmagnetT。計算する場合:

MagnetT(i、2)= [T、sum(mlat(:))./ L2];

右側はベクトルを作成し、左側はスカラーが期待される場所にそのベクトルを格納しようとします。私はあなたが何を達成しようとしているのか正確にはわかりませんし、Mathematicaの構文にあまり精通していませんが、おそらく代わりにこれを行う必要があります:

MagnetT(ii、:) = [T sum(mlat(:))./ L2];

または、言い換えると:

MagnetT(ii、1)= T;
MagnetT(ii、2)= sum(mlat(:))./ L2;
于 2011-02-21T20:21:30.690 に答える