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

große mat datei,eine liste bestimmen und aufrufen

 

xPashAx
Forum-Guru

Forum-Guru


Beiträge: 294
Anmeldedatum: 18.05.09
Wohnort: Heidelberg
Version: ---
     Beitrag Verfasst am: 08.05.2010, 18:49     Titel: große mat datei,eine liste bestimmen und aufrufen
  Antworten mit Zitat      
hi leute,
hab ein folgendes problem.meine mat datei besteht aus vektoren zeit1,zeit2,zeit3......zeit50.
um die sache einfacher zu machen habe ich ne liste mit,die ich brauche
Code:

zeitkanal={'zeit1';'zeit3';'zeit4';'zeit5';'zeit9'}
 
erzeugt.
wenn ich zeitkanal eintippe wird es angezeit.
meine erste frage was ist der unterschied mit zeitkanal(1) und zeitkanal{1}.bei dem einen wird es mit ' ' aufgelistet und bei dem anderem ohne.
wie kann ich zB die werte von zeit3 anschauen.wenn ich zeitkanal(2) eintippe kommt ans=zeit3 heraus. wie kann ich den inhalt von zeit3 anzeigen lassen.
... und wie kann ich das maximum vom zeitkanal bestimmen?
Code:

eval(max(zeitkanal{:}))
geht vllt sowas in der art. wenn ja wie ist die richtige form.

ich bedank mich schon voraus
Private Nachricht senden Benutzer-Profile anzeigen


Vito
Forum-Guru

Forum-Guru


Beiträge: 315
Anmeldedatum: 02.11.09
Wohnort: Stuttgart
Version: ---
     Beitrag Verfasst am: 10.05.2010, 10:32     Titel:
  Antworten mit Zitat      
Hi,

ich gehe davon aus, dass dein zeit1, zeit2 etc. irgendwie mit Werten belegt sind. Z.B.
Code:

zeit1 = [2 3 4], zeit2 = [4 5 6];
% dann muss du es wie folgt in einem Cell zusammenfassen.
zeitkanal = {zeit1;zeit2} % ohne apostroph!
% und wenn du das Maximale einer Zeile oder Spalte bestimmen willst, dann so
Maximal = max(zeitkanal{1}(:))
% mit den geschweiften Klammer bedienst du dich auf die Inhalte in Cell und mit den runden Klammern auf die Inhalte darin.
 

Gruß,
Vito
Private Nachricht senden Benutzer-Profile anzeigen
 
xPashAx
Themenstarter

Forum-Guru

Forum-Guru


Beiträge: 294
Anmeldedatum: 18.05.09
Wohnort: Heidelberg
Version: ---
     Beitrag Verfasst am: 11.05.2010, 11:24     Titel:
  Antworten mit Zitat      
danke vito
Private Nachricht senden Benutzer-Profile anzeigen
 
xPashAx
Themenstarter

Forum-Guru

Forum-Guru


Beiträge: 294
Anmeldedatum: 18.05.09
Wohnort: Heidelberg
Version: ---
     Beitrag Verfasst am: 11.05.2010, 12:13     Titel:
  Antworten mit Zitat      
noch ne kleine frage:
kannst du den unterschied von cell und struct erläutern.bei was sollte man cell erzeugen und bei was einen struct.
weil das was du mit cell machst kann man doch auch mit ne strukur machen oder?

ausserdem bei dem besipiel kommt max 4 raus obwohl es ne 6 ist!!!
Private Nachricht senden Benutzer-Profile anzeigen
 
Zenon
Forum-Guru

Forum-Guru


Beiträge: 292
Anmeldedatum: 20.01.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.05.2010, 13:00     Titel:
  Antworten mit Zitat      
So wie ich das sehe sind die beiden Sachen von ihrem - nennen wir es Funktionsumfang- gleich, beide können verschiedene Datentypen in einem sammeln.

In der Anwednung ist mal das eine, mal das andere sinnvoller...

Während Du Dich bei Cell Array mit Zahlen rumschlägst, die die entsprechenden Felder angeben, sind es bei einer struct defacto ganz normale Varnamen...

Man könnte sagen, ein Cell Array ist eine Zusammenstellung von reinen Daten, während eine struct eine Zusammenstellung von Variablen ist...es kommt eben immer drauf an, wie man zugreifen kann und will...

Ich benutze in den meisten fällen eine struct...ob das immer und vor allem für meine Anwendung sinnvoll ist...weiß ich nicht genau...aber ich finde es in der Regel übersichtlich bzw. leichter nachzuvoll ziehen als bei einem Cellarray mit mehreren Ebenen...
Private Nachricht senden Benutzer-Profile anzeigen
 
Vito
Forum-Guru

Forum-Guru


Beiträge: 315
Anmeldedatum: 02.11.09
Wohnort: Stuttgart
Version: ---
     Beitrag Verfasst am: 11.05.2010, 13:04     Titel:
  Antworten mit Zitat      
Hi,


"ausserdem bei dem besipiel kommt max 4 raus obwohl es ne 6 ist!!!"
Code:

Maximal = max(zeitkanal{1}(:))
 

hier rufst du auch nur das erste auf Wink, falls du von allen haben willst dann geht das so:
Code:

for k =1:length(zeitkanal)
     Maximal = max(zeitkanal{k}(:));
end
% und hier bekommst du auch die 6
% Falls du das Maximale von einzelnen zeit1, zeit2 etc wissen willst, dann so
Maximal = max(zeitkanal{hier gibst du ein was welches du wissen willst}(:));
 

Zu "struct" und "cell"
Mit Cell kannst du Daten verschiedner Datentypen zu einer Einheit zusammenfassen. Die geschweifte Klammer {} dient zur Inhaltsindizierung und runde Klammer () zur Zellindizierung. Und zur Struct hier ein Link
http://mo.mathematik.uni-stuttgart.de/kurse/kurs4/seite23.html


Code:

Gruß,
Vito
Private Nachricht senden Benutzer-Profile anzeigen
 
xPashAx
Themenstarter

Forum-Guru

Forum-Guru


Beiträge: 294
Anmeldedatum: 18.05.09
Wohnort: Heidelberg
Version: ---
     Beitrag Verfasst am: 11.05.2010, 13:05     Titel:
  Antworten mit Zitat      
und wenn die längen der vektoren ja nicht identisch sind dann nützt struct ja gar nicht oder?
Private Nachricht senden Benutzer-Profile anzeigen
 
Zenon
Forum-Guru

Forum-Guru


Beiträge: 292
Anmeldedatum: 20.01.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.05.2010, 13:09     Titel:
  Antworten mit Zitat      
Da du in einer struct faktisch einzelne Variablen gruppierst sind hier gespeicherte Vektoren von einander unabhängig, sprich die Länge ist egal, du kannst auch Strings und Matrizen und was nicht alles zusammen in einer struct unterbringen...
Private Nachricht senden Benutzer-Profile anzeigen
 
Die Horst

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.08.2013, 16:05     Titel:
  Antworten mit Zitat      
Sorry, dass ich mich hier nochmal einklinke.

Was genau ist der Unterschied zwischen Zellindizierung und Inhaltindizierung?
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 07.08.2013, 16:27     Titel:
  Antworten mit Zitat      
Hallo Die Horst,

Ich finde beide Ausdrücke nicht klar.

Es geht wohl darum, dass man bei Structs per Field-Name auf die Daten zugreift, bei Cells dagegen mit dem Cell-Index. Wenn die Daten also in einer bestimmten Art geordnet sind, wäre ein Cell-Array naheliegend:
Code:
Data = {'The 1st book I've read', 'The 2nd book I've read', 'The 3rd book I've read'};
disp(Data{2});

Wenn die Daten aber eher verschiedenen Klassen entsrpechen und eine Aufzählung sinnfrei wäre, ist ein Zugriff per Klassen-Name (hier fieldname, nicht mit Matlab's "class" verwechseln):
Code:
Data.Name = 'Jan';
Data.Profession = 'Moderator';
Data.FavoriteTopics = {'clear all', 'eval', 'runlength coding'};

Hier wäre es verwirrend die drei unterschiedlichen Daten in eine numerierte Liste zu speichern und die Fieldnames sind sehr anschaulich. Bei den FavoriteTopics ist eine Liste (hier Cell-string) wiederum naheliegend.

"Zellindizierung" soll dann wohl heißen, dass man den Index verwendet um ein Cell-Element zu finden, während "Inhaltsindizierung" die Klasse des Inhalts als Fieldname verwendet.

Intern sind Cells und Structs übrigens sehr ähnlich: Der Struct enthält einen zusätzlichen Block mit (Anzahl der Felder) * 64 Zeichen, der die Fieldnames enthält. Darum benötigt z.B. STRUCT2CELL nur sehr wenig Zeit für die Konvertierung.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Die Horst

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.08.2013, 16:50     Titel:
  Antworten mit Zitat      
Hi Jan,

Ich habe dich leider noch nicht ganz verstanden. Embarassed

Also ich kann bei einem Cell Array sowohl eine Zellindizierung durchführen als auch eine Inhaltsindizierung, richtig?

Die unterschiedlichen Syntaxen sind ja dann
Code:

Zelle=bsp_cell(1) %Zellindizierung
Inhalt=bsp_cell{1} %Inhaltsindizierung
 


Der Unterschied mir auch nach Eintippen ins Command nicht klar geworden.
 
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.