Verfasst am: 04.04.2014, 17:36
Titel: for loop funktioniert nicht
hallo liebes Matlab-Forum Team,
kann mir jemand bitte sagen, wo der Fehler in meinem Code liegt.
Also es geht darum..
ich habe mehrere Txt.dateien mit x und y Werte, die ich alle mithilfe einer GUI in ein Diagramm plotten möchte. Soweit hat es auch geklappt gehabt und zwar mit dem folgenden Code:
Code:
data = importdata(Filename{1});
plot(data.data(:,1),log(data.data(:,2)));
title('Verlauf der Axialen Geschwindigkeit im Wandbereich');
xlabel('Düsenlänge über Mittelachse in mm');
ylabel('Axiale Gewschwindigkeit in m/s');
Unterstrich = strfind(Filename{1},'_');
LegendenName{1} = Filename{1}(1:(Unterstrich(1)-1));
for i = 2: size(Filename,2) holdall;
data = importdata(Filename{i});
plot(data.data(:,1),log(data.data(:,2)));
Unterstrich = strfind(Filename{i},'_');
LegendenName{i} = Filename{i}(1:(Unterstrich(1)-1));
end
nun möchte ich in meiner GUI noch mit einbauen, dass man die x Achse eingrenzen kann.. die untere Grenze lautet dabei UG die obere OG..Also meine GUI soll nur den Bereich von x = UG bis x= OG plotten.
Code:
UG = get(handles.UntereXGrenze,'string');
OG = get(handles.ObereXGrenze,'string');
data = importdata(Filename{1});
for i = 1: size(data.data,1) if data.data(i,1) == str2double(UG)/1000;
Start = i;
return end end
n=0;
for i = Start : size(data.data,1) if data.data(i,1) ~= (str2double(OG)/1000);
n=n+1;
DatenET(n,1) = data.data(i,1);
DatenET(n,2) = data.data(i,2);
else return end end plot(DatenET(:,1),log(DatenET(:,2)));
title('Verlauf des statischen Drucks im Wandbereich');
xlabel('Düsenlänge über Mittelachse in mm');
ylabel('Logaritmische Form des Statischen Drucks in pascal');
Unterstrich = strfind(Filename{1},'_');
LegendenName{1} = Filename{1}(1:(Unterstrich(1)-1));
for j = 2:size(Filename,2);
clear DatenET;
clear DatenET;
clear data;
clear n;
data = importdata(Filename{j});
for i = 1: size(data.data,1) if data.data(i,1) == (str2double(UG)/1000);
Start = i;
return end end
n=0;
for i = Start: size(data.data,1) if data.data(i,1) ~= (str2double(OG)/1000);
n=n+1;
DatenET(n,1) = data.data(i,1);
DatenET(n,2) = data.data(i,2);
else return end end holdall;
plot(DatenET(:,1),log(DatenET(:,2)));
Unterstrich = strfind(Filename{j},'_');
LegendenName{j} = Filename{j}(1:(Unterstrich(1)-1));
end
nun plottet er in der for schleife j = 2: size(Filename,2) aber nicht mehr..
Wenn ich im Command Window den Code teste und j = 2 .. j = 3 etc manuell eingebe klappt alles.. nur wenn ich Schleife laufen lasse bekomme ich keine Graphen.. ich hab schon so oft drauf geschaut und komme nicht drauf...
aber das löst ja nicht das Problem mit der for schleife oder
nein das tut es in der tat nicht aber wenn es vorher geklappt hat und dann erst kaputt gegangen ist als du versucht hast die x achse zu beschränken ^^ kannst du mit xlim zu deiner alten form zurück kehren. das ist einfacher als den fehler in code zu suchen der nicht lauffähig ist _________________
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.