2011-03-01 75 views
12

私はMATLABがこれを行うことができるかどうか分かりません。私はそれを純粋に私のコードの中に入れたいのですが、MATLABは同時に2つの変数を作成できますか?複数の変数をMATLABで同時に定義できますか?

x = cell(4,8); 
y = cell(4,8); 

のようなコードに何か書くための方法があります:

x&y = cell(4,8); 
+1

MATLABコードの美しさを求めることは、常に上り坂の戦いです。しかし、以下の私の答えを見てください。 –

+1

*異なる*値を使用して変数を初期化する場合は、[MATLABで複数の代入を行うにはどうすればいいですか?](http://stackoverflow.com/questions/2337126/how-do-i-マルチプル割り当てインmatlab)*同じ*値でそれらを初期化する場合は、[アンドリューの提案](http://stackoverflow.com/questions/5158032/define-multiple-variables-at-the -same-time-in-matlab/5158206#51​​58206)を使用して[DEAL](http://www.mathworks.com/help/techdoc/ref/deal.html)を使用してください。 – gnovice

答えて

25

使用し、カンマ区切りのリストは、式の左辺に複数の変数を取得するには。

deal()を使用すると、複数の割り当てを1行にまとめることができます。

[x,y] = deal(cell(4,8), cell(4,8)); 

すべての出力が同じ値になります。

[x,y] = deal(cell(4,8)); 

>> [a,b,c] = deal(42) 
a = 
    42 
b = 
    42 
c = 
    42 
+0

これは完璧です、ありがとうございます。 – user379362

3

データを生成するために使用する関数によって異なります。複数の出力を持つMATLABで独自の関数を作成することができます。

[a, b, c] = foo(); 

多くの組み込み関数にもこのオプションがあります。しかし、これは戻り関数によって直接サポートされなければならない。

+0

はい、サポートされています。ご覧のとおり、コンマ構文が答えです。 –

+0

OK。私はちょうどあなたの答えから最後の行を削除しました。 –

+0

私はあなたの答えがもっと好きです。あまり冗長ではありませんが、「どのようにこれらの値をその形式で返すのですか?質問にはありません。 –

関連する問題