WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Problem mit Datentypen in Legend

 

joerg030284
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 09.08.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.08.2008, 12:20     Titel: Problem mit Datentypen in Legend
  Antworten mit Zitat      
Hallo,

habe mal wieder ein Problem mit meiner automatisierten Auswertung von Plots.

Hier die Aufbereitung der Daten, wie ich sie vornehme:

Code:
 global TIME;
  global ymatrix1;
  global legend1;
  hold off;
  plot(0,0);
  a=get(handles.sub1_var,'string');
  var=textscan(a,'%s','delimiter',';');
  for i=1:length(var{1})
     v{i}=var{1}{i};
  end
  TIME=0:1:length(evalin('base',[v{1}]))-1;
  for i=1:length(var{1})
     hold on;
     if (i==1)
         ymatrix1=evalin('base',[v{i}]);
         legend1=[v{i}];
     else
         ymatrix1=[ymatrix1;evalin('base',[v{i}])];
         legend1=[legend1;[v{i}]];
     end
  end;
plot(TIME,ymatrix1);
legend({legend1},'Location','East','Interpreter','none');
 


Dabei sind in der ymatrix1 die Variablennamen erhalten, die geplottet werden sollen und in legend1 die Namen der Variablen, wie sie in der Legende auftauchen sollen.

Das ganze funktioniert auch wunderbar, so lange die Variablennamen im Workspace die gleiche Zeichenlänge haben. Füge ich allerdings welche hinzu, die das nicht haben, so schmeißt er mir folgende Fehlermeldung um die Ohren:

Code:

??? Error using ==> vertcat
All rows in the bracketed expression must have the same
number of columns.

Error in ==> Layout>pushbutton_sub1_Callback at 210
         legend1=[legend1;[v{i}]];    
 


Welchen Datentyp kann ich denn da besser verwenden, ohne alles komplett umstrukturieren zu müssen?

Vielen Dank schon mal!
Jörg
Private Nachricht senden Benutzer-Profile anzeigen


Titus
Forum-Meister

Forum-Meister


Beiträge: 871
Anmeldedatum: 19.07.07
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 15.08.2008, 12:31     Titel:
  Antworten mit Zitat      
Hallo Jörg,

anstelle von (notwendigerweise quadratischen) String-Matrizen würde ich cell-arrays verwenden. Aber wenn ich mir den Code genau anschaue, bastelts Du aus dem Cell-Array den String?
Wenn ich es richtig sehe, müsstest Du direkt mit v arbeiten können:
Code:
legend(v, 'Location', 'East');


oder nicht?
Titus
Private Nachricht senden Benutzer-Profile anzeigen
 
joerg030284
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 09.08.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.08.2008, 12:38     Titel:
  Antworten mit Zitat      
Manchmal kann es so einfach sein Wink

Vielen Dank für die superschnelle Antwort!

Jörg
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.