Nasıl hesapların yapılabilmesi dizi ilk yerel bir değişkene atamadan, bir işlev tarafından döndürülen dizin bulabilirim?
Eğer magic(5)
, orta değer okumak istiyorum örneğin, bu gibi yapabilirim:
M = magic(5);
value = M(3,3);
value == 13
olsun. Bunlardan biri gibi bir şey yapmak istiyorum:
value = magic(5)(3,3);
value = (magic(5))(3,3);
Ara değişken ile dağıtmak için. Ancak kapsamlı bir 3
önce parantez Unbalanced or unexpected parenthesis or bracket
şikayet.
İlk bir değişkene atamadan bir dizi/matris değerleri okumak mümkün mü?
CEVAP
Aslındane istediğinizi, ama eğer indeksleme operatörü fonksiyonel formu kullanırsanız sadece yapmak mümkün. Dizin oluşturma işlemi ()
kullanarak gerçekleştirdiğinizde aslında SUBSREF işlevine bir çağrı yapıyoruz. Bu yüzden, rağmenolamazbunu yapmak için:
value = magic(5)(3,3);
Sanaolabilirbunu yapmak için:
value = subsref(magic(5),struct('type','()','subs',{{3,3}}));
Çirkin, ama mümkün ;)
Genel olarak, hemen birbiri ardından parantez iki takım yok bu yüzden bir işlev çağrısı için dizin oluşturma adımı değiştirmek zorunda. Bunu yapmanın başka bir yolu alt dizin oluşturma yapmak için kendi anonim fonksiyon tanımlamak için:
subindex = @(A,r,c) A(r,c); %# An anonymous function to index a matrix
value = subindex(magic(5),3,3); %# Use the function to index the matrix
Tüm söyledi ve yapıldığında, ancak, geçici yerel değişken çözümdürçokkesinlikle önerim daha okunabilir, ve.
Erişim dizi php bir işlev tarafından d...
Nasıl öğeleri ng-repeat ile bir işlev ...
Nasıl sipariş sonra Oracle bir sorgu t...
Nasıl bash sayı değişkenleri tarafında...
Nasıl Python dizin tarafından bir list...