Ich habe 2 Matrizen wie folgt definiert:Matlab Array-Multiplikation nach linearer Indexierungs
A=[1 2;3 4]
B=[1 4; 5 3]
Dann definiere ich Aensem
, Bensem
und Gensem
wie folgt aus:
Arow=A(:);
Brow=B(:);
Aensem=repmat(Arow,1,10);
Bensem=repmat(Brow,1,10);
G=A*B;
Grow=G(:);
Gensem=repmat(Grow,1,10);
I eine Funktion erstellen müssen, können Berechnen Sie beliebige Gensem
-ähnliche Arrays direkt von Aensem
und Bensem
. Ich kenne nur Aensem
und Bensem
. Ich habe versucht, die folgende Methode, aber es funktioniert nicht:
function ret = mat_mult(v1, v2, r)
ret = zeros(size(v1));
for i = 1:2*r.c.M
for j = 1:2*r.c.M
sum = 0;
for k = 1:2*r.c.M
sum = sum + ...
v1(idx1(i,k,r),:) .* v2(idx1(k,j,r),:);
ret(idx1(i,j,r),:)=sum;
end
end
end
end
Welche Funktion hat 'mat_mult'? Du hast es definiert, aber nie benutzt. – m7913d
"nicht funktioniert" ist keine gültige Problemaussage für SO. Bitte geben Sie an, was falsch ist: führt die Berechnung zu einem falschen Wert? Erhalten Sie einen Fehler? Funktioniert es für einige Eingaben und funktioniert nicht für andere? Fängt Ihr Computer an, wenn Sie den Code ausführen? –