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

Mehrere Plots in einem Subplot?

 

Richmand
Forum-Anfänger

Forum-Anfänger


Beiträge: 36
Anmeldedatum: 25.07.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.12.2010, 17:36     Titel: Mehrere Plots in einem Subplot?
  Antworten mit Zitat      
Hi,

ich habe folgendes Problem und zwar würde ich gerne mehrere Plots in einem Subplot unterbringen, bekomme das aber auf 'herkömmliche' Weise nicht hin.

Zu Beginn berechne ich einen zeitabhängigen Strom ie, den ich mir an gegebener Stelle im ersten von zwei Subplots darstellen lasse und anschließend einen Spannungsverlauf Vm, der im zweiten Subplot dargestellt wir. Im weiteren Verlauf des Programms werden noch zwei Ströme ic und ir bzw. eine Spannung Vinfty mit der selben Zeitskalierung wie die beiden ersten Ergebnisse berechnet. Diese neuen Ergebnisse würde ich nun gerne in die bereits bestehenden Subplots integrieren, habe aber jedes mal das Problem, das jeweils nur der letzte Plot angezeigt wird und die vorherigen Verläufe 'gelöscht' werden.

Ist es prinzipiell nicht möglich mehrere Plots nacheinander in einem Subplot unterzubringen, oder muss ich beim Erzeugen des Subplots etwas spezielles berücksichtigen?

Code:

% 2. Define parameters (rm, cm, i0, taum).
i0 = 25;        % amplitude of electrode current, in nA/mm2
rm = 0.9;     % 0.9 MOhm*mm^2
cm = 12;     % 12 nF/mm^2
taum = rm*cm;
Vm(1) = 0;     % first entry in vector for membrane Potential, mV

% 3. Define time vector (dt, T, t).
dt = 0.05;      % time step 0.05 ms
T = 250;        % total time 250 ms
t = 0:dt:T;     % time vector

% 4. Generate your own input current vector.
ix1 = round(length(t)/3);
ix2 = round(2*length(t)/3);

ie = zeros(size(t));
ie(ix1:ix2) = ie(ix1:ix2) + i0;

ir = zeros(size(t));
ic = zeros(size(t));

% 5. Plot the current into the first axis
figure;
hold on
subplot(2,1,1); % a 2x1 matrix of axes, plot into the first one
plot(t,ie,'r');      % red is a nice color
xlabel('time [ms]');
ylabel('Current [nA]');

% 6. Iteratively calculate membrane potential and capacitor current
for i=1:length(t)-1 % Why -1?
    Vinfty(i) = rm * ie(i);
    % Compute dV, the change in membrane potential at time i.
    dV = (Vinfty(i) - Vm(i))/taum*dt;
    % Compute membrane potential at time i+1.
    Vm(i+1) = Vm(i)+dV;
   
    ir(i) = Vm(i)/rm;
    ic(i) = (dV/dt)*(taum/rm);
end

% 7. Plot the voltage into the second axis
subplot(2,1,2); % a 2x1 matrix of axes, plot into the second one
plot(t,Vm,'g');
xlabel('time [ms]');
ylabel('V_{mem} [mV]');

% !!!!!!!!!!!!! Hier ist das Problem, folgender Code funktioniert NICHT!!!!!
% Am Ende wir nur der letzte Plot mit ic dargestellt!
% Plot the additional currents (ic, ir) into the first axis
subplot(2,1,1);
plot(t,ir,'b'); % blue is a nice color
plot(t,ic,'g'); % green is a nice color


% Plot the additional voltage (Vinfty) into the second axis.
% ??????????????
 


Ich hoffe ich habe mein Problem verständlich gemacht und irgendjemand kann mir helfen...?!

Gruß,
Richmand
Private Nachricht senden Benutzer-Profile anzeigen


ppirokke
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 64
Anmeldedatum: 19.11.10
Wohnort: ---
Version: R2010a
     Beitrag Verfasst am: 03.12.2010, 18:48     Titel:
  Antworten mit Zitat      
Hi,

zum Plotten mehrere Graphen in einen subpolt:

Ich empfehle dir hier mal ein Array mit Handles zu erstellen pro Subplot.
Code:
sub(1)=subplot(2,1,1)
sub(2)=subplot(2,1,2)


Dann kannst du definiert in den ersten Subplot plotten mit:
Code:
plot(sub(1),[4 6],[10 20])

Anschließend Hold FÜR DEN SUBPLOT1 aktivieren:
Code:
hold(sub(1),'on');

und dann kannst du munter weiter hineinplotten soviel du magst:
Code:
plot(sub(1),[1 2],[10 20])


Frage beantwortet?
Private Nachricht senden Benutzer-Profile anzeigen
 
Richmand
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 36
Anmeldedatum: 25.07.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.12.2010, 20:27     Titel:
  Antworten mit Zitat      
GENIAL!

Genau so habe ich mir das gedacht!

VIELEN DANK!!!
Private Nachricht senden Benutzer-Profile anzeigen
 
matlabeinsteiger

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.10.2012, 14:26     Titel:
  Antworten mit Zitat      
Exakt das habe ich auch gesucht Very Happy

Vielen Dank!
 
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 - 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.