|
|
Jede Spalte einer Matrix plotten |
|
Sari |

Forum-Newbie
|
 |
Beiträge: 3
|
 |
|
 |
Anmeldedatum: 13.08.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.08.2013, 10:07
Titel: Jede Spalte einer Matrix plotten
|
 |
|
 |
|
Hallo ich bin ein ziemlicher Frischling was Matlab betrifft.
In meinem HiWi Job soll ich allerdings mit Matlab programmieren und komme nicht so wirklich weiter.
Ich habe eine Matrix mit 256 Zeilen und j (konkret sinds hier 42) Spalten. Die erste Spalte ist unbrauchbar also sollen nur j-1 Spalten verwendet werden.
Ich habe eine Exponentialfunktion die für jede Spalte durchgeführt werden soll und die auch für jede Spalte ausgeführt werden und geplottet werden soll - so dass ich am Ende j-1 Graphen erhalte. Außerdem möchte ich auch jeden Graphen abspeichern - natürlich unter verschiedenen Namen so dass ich auch am Ende weiß welcher Graph zu welcher Spalte gehört
Mein Chef sagt mir was von der num2str Funktion - aber mir sagt das natürlich gar nichts- hab auch schon fleißig im Internet gesucht aber irgendwie noch nichts wirklich konkret brauchbares gefunden.
Ich bin dankbar für jede Hilfe!
Der Code den ich bis jetzt habe - der aber leider nicht so funktioniert wie gewollt sieht so aus:
for x_data = nmr(:,1);
for p=1 j-1)
s{p}= num2str(p);
end
y_data = nmr(:,p+1);
y_data(1)=[];
x_data(1)=[];
guesses = [0 ; 20 ; 0.1];
try
[beta, resi, J] = nlinfit (x_data, y_data, @(guesses,x_data)(guesses(1)+guesses(2)*exp(-1/guesses(3)*x_data)), guesses);
catch
beta = zeros(3,1);
end
T2f=1/beta(3);
monofit(:,p)=beta;
plot(x_data,y_data);
plot(x_data,beta(2)*exp(-beta(3)*x_data)+beta(1),'-r')
legend('Data T2','Fit')
str = {['T_2=' num2str(T2f)]};
text(2*T2f,beta(2)/2,str,'FontSize',15);
set(T2m,'Visible','off');
print (T2m, '-djpeg', ['C:\Users\Sari\Desktop\Arbeit - NMR\Auswertungen\Test\T2fitmono' num2str(p) '.jpg']);
end
|
|
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 13.08.2013, 11:44
Titel:
|
 |
bitte benutze die code umgebung wenn code gepostet wird. weiß nicht warum das immer überlesen wird bei neulingen. der butten ist so groß
da der code so nicht lauffähig ist ist die aussage
Zitat: |
der aber leider nicht so funktioniert wie gewollt |
recht nutzlos solange du nicht sagst was nicht so aussiht wie gewollt ^^
der befehl
und
wären vieleicht hilfreich.
_________________
richtig Fragen
|
|
|
Sari |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 3
|
 |
|
 |
Anmeldedatum: 13.08.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.08.2013, 12:02
Titel:
|
 |
Tut mir leid dann weiß ich fürs nächste mal Bescheid.
Dass der Code nicht so funktioniert wie gewollt kann ich genauer beschreiben. Ich erhalte zwei Graphen scheinbar für p=1 und p=39 die allerdings beide Identisch aussehen.
was ist denn
und wofür soll ich das verwenden?
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 13.08.2013, 12:07
Titel:
|
 |
was clf macht steht in der doc.
kannst alternativ auch
verwenden da du ja 2 graphen pro plot haben willst wie es aussiht.
p wird nicht mehr verändert bei dir.
das funktioniert zwar in der matlab syntax aber ich bin mir nicht sicher ob es wirklich das ist was du meinst. (ich bin mir sogar ziemlich sicher das du das nicht meinst )
_________________
richtig Fragen
|
|
|
Sari |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 3
|
 |
|
 |
Anmeldedatum: 13.08.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.08.2013, 12:22
Titel:
|
 |
also nmr ist meine Matrix.
und ich will ja dass die Spalte immer gewechselt wird.
müsste ich dann nicht sowas wie :
haben? welche Variable wird denn bei der Verwendung von
verändert?
Und wieso gehst du davon aus, dass ich zwei Graphen haben möchte?
(Ich muss ganz ehrlich gestehen - mein "Chef" hat selber absolut keine Ahnung von Matlab und erarbeitet sich das auch alles mehr oder weniger übers Internet. Er hat die Stelle bisher programmiert und ich nur den Rest des Programms (und der läuft einwandfrei ) deswegen hab ich auch nicht so wirklich ahnung davon was die einzelnen Befehle in diesem Teil so machen)
Danke auf jeden Fall schon mal für die Hilfe
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 13.08.2013, 12:33
Titel:
|
 |
p wird nur innerhalb der schleife verändert
darum bringt das nix.
das sorgt nur dafür das x_data jeden wert aus der ersten spalte von nmr annimmt aber halt nacheinander außerdem sagtst du die erste spalte ist müll. du hast also für x_data in deiner schleife immer nur eine zahl. das ist denke ich nicht das was du willst.
richtiger wäre so etwas :
da werden dann die spalten gewächselt. so wie du es quasi bei ydata versucht hast. wobei ich mir nicht sicher bin was xdata bzw ydata dann ist bzw wo das aus der nmr kommt.
Zitat: |
Und wieso gehst du davon aus, dass ich zwei Graphen haben möchte? |
weil du den plot befehl 2 mal aufrufst.
_________________
richtig Fragen
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| RSS
Hosted by:
Copyright © 2007 - 2025
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.
|
|