Verfasst am: 15.08.2008, 11:20
Titel: Problem mit Datentypen in Legend
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}]];
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:
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.