2011-03-01 27 views
12

MATLAB'ın bunu yapıp yapamayacağını bilmiyorum ve kodumda sadece estetik olmasını istiyorum, ancak MATLAB aynı anda iki değişken oluşturabilir mi?MATLAB'da aynı anda birden çok değişken tanımlayın?

Örnek

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

benzer kod şeyler yazmak için bir yol var mı:

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

MATLAB kodunda estetik aramak her zaman bir savaş yokuşudur. Ama cevabımı aşağıya bakın. –

+1

Değişkenleri * farklı * değerleriyle başlatmak istiyorsanız, bu birimin [MATLAB'de nasıl birden fazla ödev yapabilirim?] Bir kopyasıdır (http://stackoverflow.com/questions/2337126/how-do-i- do-multiple-atama-in-matlab) Eğer * aynı * değeri ile onları başlatmak istiyorsanız, o zaman [Andrew'un öneri] (http://stackoverflow.com/questions/5158032/define-multiple-variables-at-the -same-time-in-matlab/5158206 # 5158206) [DEAL] kullanmak için (http://www.mathworks.com/help/techdoc/ref/deal.html) ne istediğinizi. – gnovice

cevap

25

kullanın virgülle ayrılmış listeler bir ifadenin sol tarafında birden çok değişken olsun.

Birden çok atamayı bir satır koymak için deal() öğesini kullanabilirsiniz. Tek bir giriş ve tüm çıkışları ile

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

Çağrı bunu aynı değeri olsun.

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

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

Bu mükemmel, çok teşekkürler. – user379362

3

Verileri oluşturmak için kullandığınız işleve bağlıdır.

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

Birçok yerleşik fonksiyon aynı zamanda bu seçeneği vardır: Birden fazla çıkışa sahiptir MATLAB'ta kendi işlevini oluşturabilirsiniz. Ancak bu, doğrudan dönen işlev tarafından desteklenmelidir.

+0

Evet, destekleniyorlar. Gördüğünüz gibi, virgül sözdizimi cevaptır. –

+0

Tamam. Şimdi son satırı cevabınızdan çıkardım. –

+0

Cevabınızı daha da beğeniyorum. Çok ayrıntılı olmasa da, "Bu değerleri bu formatta nasıl iade ederim?" soruda değil. –

İlgili konular