2016-06-10 7 views
0

Ich versuche, den folgenden Code zu verwenden:Was ist der Unterschied zwischen a (i, :) und [a] in Matlab?

for i = 1:n 
    a(i, :) = f(x,y,l); 
    j = g(x,y,a(i,:); 
end 

g ist eine Funktion, die Matrix-Multiplikation von x tut und a(i:,) und subtrahiert es mit y, Delta zu bekommen. Ich bekomme Fehler, wenn es ist und kein Fehler, wenn ich einfach [a] versuchen.

+3

Zwei Kommentare. Zuerst fehlt eine Klammer am Ende Ihrer Definition von "j". Zweitens, ohne genau zu wissen, was die Fehlermeldung ist oder wie "f" und "g" definiert sind, ist es schwierig, eine sinnvolle Antwort zu geben. – craigim

+0

'[a]' ia genau das gleiche wie nur 'a', wobei' a (i, :) 'nur die' i'te Zeile von 'a' ist – Dan

Antwort

0

von a(i,:) meinen Sie, dass die i-te Zeile übernehmen und alle Spalten der i-ten Zeile der Matrix eine

zum Beispiel lässt Angenommen, wir haben eine 3x3 Matrix ein

>> a = magic(3) 

a = 

    8  1  6 
    3  5  7 
    4  9  2 

>> a(1,:) 

uns geben die erste Reihe der Matrix eines

ans = 

    8  1 6 

welche in einem eindimensionalen Array führen wird, wenn man sendet ‚a‘ Sie den gesamten 2-dimensionalen AR senden ray in der Eingabe werden Sie einen Fehler wahrscheinlich Mismatch wegen Dimension bekommen wahrscheinlich was versuchen Sie

[rowa , colb] = size(a(i,:)) 

und

[rowx , colx] = size(x) 

weil für Matrix mutiplication ist zu überprüfen sollten die Abmessungen nxmmxn oder anderes sein Sie können nicht zwei Matrizen multiplifizieren oder der resultierende Fehler von Multiplikation hat nicht die gleichen Dimensionen wie y, weil die Subtraktion Element für Element ist

Verwandte Themen