Obwohl die länge der Vektoren in 'indvec' definitiv dieselbe ist, auch Zeilenvektoren. Gibt es eine elegantere Lösung ? Würde gerne das Benutzen von structfind vermeiden.
Habe etwas herumprobiert und hier ist der aktuelle Code. Ich rechne ein Differenztensorprodukt aus und speicher die Zwischenergebnisse ab.
Mit dem Befehl arrayfun scheint mit meinem Input was nicht zu stimmen.
Wäre es möglich mit arrayfun die if Bedingung und gleichzeitig das Ergebnis für index zu erhalten ??
for ii = 1:1:2^d-1;
gamma = dec2bin(ii,d)-'0';
ifall(vec-gamma > 0);
iffind(isequal([vecval.indvec],vec-gamma));
index=structfind(vecval,'indvec',vec-gamma);
%index = arrayfun(@(x)all(isequal(x.indvec,vec-gamma),vecval));
V = V + (-1)^sum(gamma)*vecval(index).value;
else [newval,count]=Produktgitterbeta(vec-gamma,nw,d,count);
V = V + (-1)^sum(gamma)*newval;
n=numel(vecval);
vecval(n+1).indvec=vec-gamma;
vecval(n+1).value=newval;
vecval(n+1) end end
Es hat alles bestens mit dem arrayfun(..) funktioniert.
Vielen Dank.
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.