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

Punkte je nach Bedingung andersartig plotten!

 

Fridolina
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 30.08.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.08.2010, 13:53     Titel: Punkte je nach Bedingung andersartig plotten!
  Antworten mit Zitat      
Hallo liebe Forenmitglieder,

ich beschäftige mich erst seit neuestem mit Matlab und hab eine Frage bezüglich des plotten, die je nach Bedingung zum Beispiel in einer anderen Farbe, Symbol geplottet werden sollen. Ein Teil meines Programms sieht bis jetzt so aus:

Code:
Anfangsbild=imread(filenames{1,1});

Endbild=imread(filenames{2,1});
MitteOben=Endbild(300:430,675);

S=sum(Endbild(300:430, 675) < 245);

 
% Breite des Streifens

B=S*4.4; % [µm]



%% Darstellen
figure(1)
imagesc(Anfangsbild)
colormap('gray')
%
figure(2)
imagesc(Endbild)
colormap('gray')

figure(3)
hold on;
plot(MitteOben,'g.')
legend('MitteOben',-1);

Wie könnte ich Matlab sagen, dass er mir die Punkte die kleiner sind, wie 245 anders plotten soll, wie die die größer sind?!
Vielen Dank schon im Voraus!!!!!!!

Fridolina
Private Nachricht senden Benutzer-Profile anzeigen


Fridolina
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 30.08.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.08.2010, 20:08     Titel:
  Antworten mit Zitat      
Ich bin es nochmal:
Hab es jetzt mal mit einer for-schleife versucht und wollte dann a,b separat in einem Figur plotten, des funktioniert aber nicht, leider!!!!!!!!!!
Code:

for i = 1:430
    if Endbild(i, 675)<245
a=Endbild(i, 675);

    else Endbild(i, 675)>245;
b=Endbild(i, 675);
    end
end


Wäre wirklich über jede Idee erfreut!
Dankeschön!

 
Crying or Very sad Question Question Question Question
Private Nachricht senden Benutzer-Profile anzeigen
 
Fridolina
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 30.08.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.08.2010, 20:39     Titel:
  Antworten mit Zitat      
Ok, es tut jetzt fast, man muss a(i) und b(i) schreiben.
Nur hab ich jetzt das Problem, dass die Vektoren nicht die gleiche Dimension haben.
Und alle anderen Werte die die Bedingung nicht erfüllen, werden ja null gesetzt und doe plottet er mir ja dann auch:(!
Hat man ein Problem gelösz, kommt auch schon das Nächste:)!
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 31.08.2010, 20:41     Titel:
  Antworten mit Zitat      
Hallo,

hier ein Vorschlag:
Code:
imagesc(Endbild)
colormap('gray')
x = 675;
y = 300:430;
hold on, plot(x, y(Endbild(300:430, 675) < 0.2), 'b.')


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Fridolina
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 30.08.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.08.2010, 21:08     Titel:
  Antworten mit Zitat      
Hallo Harald,

ich hatte das so in der Art versucht (außer ich verblick es gerade voll). Mein Code seht jetzt so aus:
Code:
%% Lesen

Anfangsbild=imread(filenames{1,1});

Endbild=imread(filenames{2,1});
MitteOben=Endbild(300:430,675);

S=sum(Endbild(300:430, 675) < 245);


Unterscheidung=(Endbild(300:430, 675) < 245);
Maske=abs(Unterscheidung)< 1;

ax=0;
ad=0;
ab=0;
for i = 300:430
    if Endbild(i, 675)<=245
        a(i)=Endbild(i, 675);
        ad=ad+1
    else b(i)=Endbild(i, 675);
     ab=ab+1  
    end
ax=ax+1
end



x=300:430;

% Breite des Streifens

B=S*4.4; % [µm]

% h=findobj(Endbild(300:430, 675), < 245);
% pcolor

%% Darstellen
figure(1)
subplot(2,2,1)
imagesc(Anfangsbild)
colormap('gray')
title('Anfangsbild')
 
subplot(2,2,2)
imagesc(Endbild)
colormap('gray')
title('Nach x-Umdrehungen')

subplot(2,2,3)
hold on;
plot(MitteOben,'g.')
title('GW')
text(20,230,['B_{Streifen}=',num2str(B),'µm'])

subplot(2,2,4)
hold on;
plot(Maske,'.')
title('Unterscheidung der GW nach größer/kleiner 245')

figure(2)
hold on
ylim([150 260])
plot (x,b(1,300:430),'b.')
plot (x,a(1,300:430),'r.')

nur mit dem Problem, dass mein a ja nur 403 Spalten hat und Matlab da meckert!
Vielen Dank nochmal Harald!
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 31.08.2010, 21:28     Titel:
  Antworten mit Zitat      
Hallo,

vorbelegen dürfte helfen (vor den if-Abfragen):
Code:
a = zeros(1,430);
b = zeros(1,430);


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Fridolina
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 30.08.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.08.2010, 21:31     Titel:
  Antworten mit Zitat      
Vielen lieben Dank Harald,

es funktioniert:)!
Danke nochmal!!!!!!!!
Wünsche noch einen schönen Abend!!!!!
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 - 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.