Da wird allerdings nichts addiert, sondern differenziert.
Sollten u und p in einem Table vorliegen, würde ich mit table2array / array2table hin- und zurückwandeln.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Wenn meine Matrix ab dem zweiten Datensatz mit der Größe der Matrix verrechnen möchte, kann ich die vorherigen Größen der Matrizen speichern, um sie mit zu addieren?
Ich versuche es mal in einem Beispiel zu verdeutlichen:
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Dann passen aber immer nur die ersten und zweiten Datensätze und der Rest ist falsch
Das lässt mich vermuten, dass der Codeausschnitt in einer for-Schleife steht? Es wäre gut, zumindest das auch mit einzufügen. Ebenso die Entstehung von size(DatMat_transition)
Generell wäre meine erste Empfehlung den Debugger einzusetzen um genau zu verstehen, was an welcher Stelle schief geht.
Wenn ich raten müsste, würde ich sagen, dass das Problem darin liegt, dass du w von Iteration zu Iteration behalten willst. Du überschreibst es aber mit dieser Zeile, ohne die Historie zu berücksichtigen:
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
warum ist das "if r == 1" auskommentiert? Wenn es nicht dort steht, was leitet dann stattdessen das if-Konstrukt ein?
Zitat:
Ab Datensatz 3 wird es dann falsch...
1. Welche Ergebnisse erwartest du, welche bekommst du?
2. Du hast jetzt wieder Code, der in jeder Iteration w vollkommen überschreibt. Wenn du das nicht möchtest, brauchst du in diesem Fall im else-Teil etwas, das mit dem vorherigen w weiterarbeitet. Beispiel:
Code:
if r==1
w=0;
elseif r==2
w=size(DatMat_transition,1);
elseif r>2 % w=size(SecondMat_transition,1); % überschreibt Historie
w=w+size(SecondMat_transition,1);
end
Es ist schwer zu sagen, was du genau willst, aber das sehr wahrscheinlich nicht - hoffe ich.
Zitat:
Wie würde denn die Lösung mit Cumsum aussehen?
Das war ein sinnvoller Vorschlag zu 04.02.2022, 14:43. Dort hattest du das Problem aber soweit vereinfacht, dass es mit dem eigentlichen nicht mehr viel zu tun hatte.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
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.