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

Auf bestimmte stelle eines Arrays zugreifen

 

Bensen83
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 91
Anmeldedatum: 09.11.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.09.2008, 21:46     Titel: Auf bestimmte stelle eines Arrays zugreifen
  Antworten mit Zitat      
Hallo, ich muss eine Messreihe aufnehmen und dachte mir, ich speicher mir einfach nach jeder abtastung einen Wert in ein Array, wie knn ich denn auf eine bestimmte stelle eines Arrays zugreifen, geht das überhaupt, dass ich es erweitern kann? Also z.B. eine Variable Drehzahl, welcher ich immer ein weiteres Arrayelement spendiere. Kann mir jemand helfen?
Private Nachricht senden Benutzer-Profile anzeigen


nschlange
Ehrenmitglied

Ehrenmitglied



Beiträge: 1.320
Anmeldedatum: 06.09.07
Wohnort: NRW
Version: R2007b
     Beitrag Verfasst am: 20.09.2008, 22:15     Titel:
  Antworten mit Zitat      
Hi,

wenn A Dein Array ist, ist das erste Array-Element A(1), das zweite A(2), das letzte A(end). Wenn A mehrdimensional ist (zB 2x2) ist A(2,: ) die gesamte 2. Zeile von A, A(:,3) währe die 3. Spalte.
Das sind recht elementare Grundlagen, die Du besser einem der Tutorials (nochmal die Links) entnehmen kannst. Wäre sonst sehr viel zu schreiben.
Du kannst es auch in der Hilfe nachlesen, z.B. Matrix Indexing.

Edit: So kannst Du ein Array x an das Array A anghängen:
Code:
. Dabei ist auf passende Dimensionen zu achten.

_________________

Viele Grüße
nschlange

"Chuck Norris ejakuliert fluessigen Stahl!"
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Matze E.
Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 06.08.09
Wohnort: ---
Version: R2009a
     Beitrag Verfasst am: 07.08.2009, 11:53     Titel:
  Antworten mit Zitat      
Moin,

also der Link zu Matrix Indexing ist nicht mehr aktuell und unter den Tutorials habe ich leider für mein Problem nichts gefunden, darum frage ich hier auch mal nach "elementarem Wissen" Wink

Ich habe mehrere Bilder mit einer Webcam aufgenommen und diese unter laufendem Index in ein Array gespeichert.
Code:
i = 0;

% Anzahl der Matrizen = Anzahl der Bilder die geschossen werden
m = 10;
% Image height, as specified in the ROIPosition property
h = 240;
% Image width, as specified in the ROIPosition property
w = 320;
% Number of color bands, as specified in the NumberOfBands property
c = 3;
matar = zeros(m,h,w,c);

while(i<10) % Stop after 10 pictures
    i = i+1;
    data = getsnapshot(vid);
    matar(i,:,:,:) = data;
    figure;
    image(data);
    pause(1);
end


Nun möchte ich hinterher den Teil zum Anzeigen der bilder hier herausnehmen und woanders einfügen. Soll heißen, ich möchte hinterher nur die Daten zu den Bildern herausziehen aus dem Array. Also ich möchte nach der Schleife zum Beispiel schreiben können:

Code:

data = %Gib mir das Bild an der Stelle 5 zurück;
%matar(5,:,:,:) geht nicht
%matar(5): geht nicht

image(data);


Gibt es hierfür eine einfache Lösung?

Viele Grüße
_________________

Nicht der ist der Beste,
der der Beste von allen ist,
sondern der,
der sich selbst ueberwindet.
Private Nachricht senden Benutzer-Profile anzeigen
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.029
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2024a
     Beitrag Verfasst am: 07.08.2009, 12:07     Titel:
  Antworten mit Zitat      
Moin,

verwende ein Cell-Array und eine for-Schleife, wenn du die Anzahl der Durchläufe vorher festlegst und vermeide i und j als Zählvariablen da sie von Matlab intern als imaginäre Einheit verwendet werden:
Code:
% Anzahl der Matrizen = Anzahl der Bilder die geschossen werden
m = 10;
% Image height, as specified in the ROIPosition property
h = 240;
% Image width, as specified in the ROIPosition property
w = 320;
% Number of color bands, as specified in the NumberOfBands property
c = 3;
matar = cell(1,m);

for k=1:m % Stop after 10 pictures
    matar{k} = getsnapshot(vid);
    figure;
    image(matar{k});
    pause(1);
end


Abfragen kannst du die Sachen dann wie oben bereits geschehen.

Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
Matze E.
Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 06.08.09
Wohnort: ---
Version: R2009a
     Beitrag Verfasst am: 07.08.2009, 13:42     Titel:
  Antworten mit Zitat      
hach, es ist so schön, wenn es läuft, wie es soll Very Happy

Vielen Dank, dass Du mir alleine heute zwei Probleme gelöst hast, an denen ich seit mehreren Tagen verzweiflet bin.

Viele Grüße
Matze
_________________

Nicht der ist der Beste,
der der Beste von allen ist,
sondern der,
der sich selbst ueberwindet.
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.