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

Zeile und Spalte einer bestimmten Zahl im Vektor

 

DerNichtsWissende

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.05.2020, 15:50     Titel: Zeile und Spalte einer bestimmten Zahl im Vektor
  Antworten mit Zitat      
Hallo Leute,
ich hab einen beliebigen Vekotr. Wir nehmen einfach mal an der der Vektor 1000x1000 ist. Nun will ich die Lage des maximalen Wertes finden. Jedoch tu ich mich da schwer da ich noch neu im Matlab bin.
Bis jetzt hab ich folgendes. Hier wird mit der größte Zahl der MAtrix angezeigt, jedoch nicht ihre Postion.

Code:
%
clc;    % Clear the command window.
close all;  % Close all figures (except those of imtool.)
imtool close all;  % Close all imtool figures if you have the Image Processing Toolbox.
clear;  % Erase all existing variables. Or clearvars if you want.
workspace;
RGB = imread ( 'IMG_0331.JPG');
I= rgb2gray (RGB);
[Gmag,Gdir] = imgradient(I);

max (abs(I(:)));

 


DerNichtsWissende

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.05.2020, 10:49     Titel:
  Antworten mit Zitat      
kann mir keiner helfen '?
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 20.05.2020, 10:58     Titel:
  Antworten mit Zitat      
Hallo,

2. Rückgabeargument von max zurückholen, dann ind2sub. Beispiel:

Code:
M =magic(5)
[v, idx] = max(M)
[r,c] = ind2sub(size(M), idx)


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
DerNichtsWissende

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.05.2020, 15:26     Titel:
  Antworten mit Zitat      
Danke für deine Antwort. Jedoch erhalte ich jetzt iwelche zahlen..wofür stehen diese ?
Ich will einfach nur zum Schluss wissen in welcher Zeile meine Größte Zahl ist. Zum beispiel.: Größte Zahl = X. Befindet sich in Zeile Y
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 26.05.2020, 15:30     Titel:
  Antworten mit Zitat      
Hallo,

v steht für value (größte Zahl)
r steht für row (Zeile), c steht für column.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
DerNichtsWissende

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.05.2020, 11:23     Titel:
  Antworten mit Zitat      

Zeile und Spalte einer bestimmten Zahl im Vektor
Klicke hier, um den Artikel bei Amazon.de anzuschauen.

Code:
%
%
clc;    % Clear the command window.
close all;  % Close all figures (except those of imtool.)
imtool close all;  % Close all imtool figures if you have the Image Processing Toolbox.
clear;  % Erase all existing variables. Or clearvars if you want.
workspace;
RGB = imread ( 'IMG_0331.JPG');
I= rgb2gray (RGB);
[Gmag,Gdir] = imgradient(I);

max (abs(I(:)));  %  HIER WIRD MIR ALS GRÖßTE ZAHL 255 ANGEZEIGT

 
 M =magic(5)
[v, idx] = max(M) % HIER BEKOMM ICH PLÖTZLICH EINE 5 ZAHLEN, ALLE DEUTLICH UNTER 255
[r,c] = ind2sub(size(M), idx)
 



Hallo Harald, vielen dank für deine Erklärung.
Jedoch bekomm ich bei Value 5 Zahlen. Und diese sind deutlich unter der maximalen Zahl die ich mit
Code:

erhalten habe.
Woran liegt das =?
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 27.05.2020, 11:39     Titel:
  Antworten mit Zitat      
Hallo,

sorry, kleiner Fehler in meinem Beispiel:
M =magic(5)
[v, idx] = max(M(:))
[r,c] = ind2sub(size(M), idx)

Was du schon noch machen solltest ist das auf deinen Fall übertragen. Wenn du Maxima von M ausrechnen lässt, bekommst du logischerweise Maxima von M und nicht von I. Ich hatte nur das magic-Beispiel verwendet, weil man dort schön das Ergebnis nachvollziehen kann und ich vor allem das von dir verwendete Bild nicht habe.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
DerNichtsWissende

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.05.2020, 09:51     Titel:
  Antworten mit Zitat      
Hallo,
asooo oke danke dir Smile
Hab noch ne kleine frage:
Ich will das gleiche jetzt bei einem zweiten, dritten, vierten usw. Bild machen.
Wie muss ich da vorgehen ?
 
DerNichtsWissende

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.05.2020, 10:06     Titel:
  Antworten mit Zitat      
Hallo,
das ist mein code , für zwei bilder die ich miteinander vergleichen will. ( Will jeweils doe Postion der größten Radienten finden und dann die Zeilen voneinandern abziehen und somit zu sehen, ob sich die Linie, HDG, verschoben hat.)
Code:

%
clc;    % Clear the command window.
close all;  % Close all figures (except those of imtool.)
imtool close all;  % Close all imtool figures if you have the Image Processing Toolbox.
clear;  % Erase all existing variables. Or clearvars if you want.
workspace;
RGB = imread ( 'IMG_0326.JPG');
I= rgb2gray (RGB);
[Gmag,Gdir] = imgradient(I);

max (abs(I(:)));

 

[v, idx] = max(abs(I(:)) )
[r,c] = ind2sub(size(I), idx)








Bild1= imread ( 'IMG_0327.JPG');
A= rgb2gray (Bild1);
[Gmag,Gdir] = imgradient(A);

max (abs(A(:)));

 
 
[v, idx] = max(abs(A(:)) )
[r,c] = ind2sub(size(A), id

Abstand = r-r
 


Jedoch erhalte als Ergebnis für den Abstand 0, obwohl im Comman Window zu sehen ist, dass sich die beiden "r´s" voneinander unterscheiden.

IMG_0327.JPG
 Beschreibung:

Download
 Dateiname:  IMG_0327.JPG
 Dateigröße:  1.37 MB
 Heruntergeladen:  143 mal
IMG_0326.JPG
 Beschreibung:

Download
 Dateiname:  IMG_0326.JPG
 Dateigröße:  1.79 MB
 Heruntergeladen:  154 mal
 
DerNichtsWissende

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.05.2020, 10:09     Titel:
  Antworten mit Zitat      
ignoriert meinen letzten Beitrag.
Hat sich geklärt.. normal dass da 0 rauskommt, ich musste die Variablen unterschiedlich benennen.......
 
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 - 2024 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.