Standard, deyimsel yolu:
endekslerin bir vektör kullanın: Bu arr
bir hücre dizisi olup olmadığını çalışır
arr([i j]) = arr([j i]); %// arr can be any array type
, sayısal bir dizi veya bir dize (char dizisi).
tavsiye (ama mümkünse) değil:
Eğer Python o daha benzer bir sözdizimi kullanmak (unsurların bir listesiyle yerine endekslerin bir vektörün) istiyorsanız, sizi deal
işlevine gereksinim duyarsınız. Ancak ortaya çıkan ifade daha karmaşıktır ve arr
'un bir hücre dizisi mi yoksa standart bir dizi mi olduğuna bağlı olarak değişir. Bu yüzden tavsiye edilmez (iki öğe değişimi için). Sadece şeyiyle dahil:
[arr{i}, arr{j}] = deal(arr{j}, arr{i}); %// for a cell array
[arr(i), arr(j)] = deal(arr(j), arr(i)); %// for a numeric or char array
Teşekkür ederim, tam olarak aradığım şey bu. MATLAB ile ilgili gerçek bir deneyimim olmadığında, tüm farklı türdeki parantezler, onları ne zaman kullanacağım, vb. Bu kadar basit bir noob sorusunu cevapladığınız için teşekkür ederiz. –
Matlab'da oldukça tecrübem var ve özellikle kaşlı ayraçlarla karıştırılmam gerekiyor. Bu yüzden bu yüzden cesaretini kırmayın :-) –
@DavidHeffernan İşte mini öğretici: köşeli parantezler [] 'bir diziye birleştirme, fonksiyon çağrıları ve erişim elemanları için köşeli parantezler'() 've küme parantezleri } 'elemanların * içeriğine * erişmek için (çoğunlukla hücre dizileriyle ilgili) ve bir hücre dizisine birleştirmek için. –