Verfasst am: 13.12.2012, 14:42
Titel: Auslesen einer Matrix mit Rechenoperation in for-Schleife
Hallo, ich bin neu hier und auch neu in Matlab. Ich habe eine Frage zum Auslesen von Matrizen mittels einer Schleife. Ich zeig euch mal den Code und beschreibe dann was ich damit bezwecken will
Ihr müsst noch wissen, dass die Matrix exp_data eine Matrix mit 5 Zeilen und 26 Spalten ist. Darin sind Messwerte eingetragen die jeweils die X-Werte(Spalte1) und die Y-Werte (Spalte 2-6 für Temperatur 1, Spalte 7-11 für Temperatur 2, ... ) eingetragen.
Ziel ist es jetzt, die experimentellen Daten aus exp_data mit den jeweiligen Daten aus einem berechneten Modell (fit_1-5) zu vergleichen.
Wenn ich das Programm allerdings laufen lasse, dann bringt er mir in der zweiten Zeile des oben genannten Abschnitts also in error_1(l) ... folgenden Fehler:
Code:
Error in f_evaluate (line48)
error_1(l) = exp_data(:,l.*5-3) - fit_1(l);
Ich bin mir nicht sicher ob ich die Indizierung in der Klammer für die Spaltenummer mit einer Rechenoperation (l.*5-3) verknüpfen darf oder nicht...
Vielleicht weiß ja einer wie ich das richtig mache oder was ich eventuell falsch mache, da mir der ausgegebene Fehler nicht wirlich weiter hilft.
Verfasst am: 13.12.2012, 23:58
Titel: Re: Auslesen einer Matrix mit Rechenoperation in for-Schleif
Hallo Thomas,
Es wäre hilfreich, wenn Du die Fehlermeldung vollständig postest. Zurzeit hast Du nur den Teil gezeigt, der erklärt in welcher Zeile das Problem auftritt, aber nicht, welcher Fehler genau auftritt.
Eine allgemeine Methode zur Lösung solcher Probleme ist der Debugger:
Morgen, ok Wusste nicht wie viel Information man braucht um da etwas sagen zu können.
Hier also nochmal die geamte Fehlermeldung. (Unter Anderem noch mehrere, jedoch hab ich jetzt mal von oben begonnen mich durchzuarbeiten)
Code:
>> main
Default options returned (type "help cmaes" for help).
Warning: Initial point was out of bounds, corrected
> In cmaes at 502
In main at 27
In an assignment A(I) = B, the number of elements in B and I must be the same.
Error in f_evaluate (line51)
error_1(l) = exp_data(:,l.*5-3) - fit_1(l);
Also wie ihr wahrscheinlich schon vermutet steckt da noch viel mehr Code hinter dem Programm. Jedoch weiß ich nicht, was davon ich posten soll, weil ich eben unter anderem auch einen Ordner von einem Kollegen bekommen habe der meinte, man kann das mit dem machen, mir jedoch nicht genau die Funktion der im Ordner enthaltenen Funktionen erklärt hat und so weiter...
Viell könnt ich mir ja mit der Fehlermeldung schon mal helfen wie ich das am besten interpretiere.
Ansonsten werde ich mal den besagten Kollegen zu Rate ziehen und mir ansehen wie das im Detail funktioniert.
Vielen Dank!!!
Thomas
P.S.: Wenn ihr gute Bücher zum Einstieg in die Programmierung mit Matlab wisst, immer her mit der Info Danke!
Danke Jan,
ich hab das Problem jetzt gelöst. Anscheinden waren die Matrizen nicht von gleicher Größe und deswegen konnte er die Operation nicht durchführen. Hab es jetzt einfach so gemacht, dass ich die Einzelnen Zeilen direkt und nicht mittels eine Schleife aufrufe.
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.