|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.08.2012, 15:48
Titel: if-schleife
|
 |
hi zusammen!
ich habe ein mat.file, dieses habe ich mit load geladen und dieses file enthält eine datei(dat1), die die größe 80x4 hat.
weiters habe ich eine sy = 140x1, in allen vektoren sind zahlenwerte enthalten.
z.B. A = 125
25
183
2
394
...
und dat1( :,1) = 25
2
183
58
...
Ich möchte jetzt die Zahlenwerte in A und dat1(:,1) miteinander vergleich und bei übereinstimmung möchte ich aus dat1 die dazugehörigen werte abspeichern.
ich habe das folgendermaßen probiert:
Jetzt speichert mir matlab aber alle werte in die variablen C & D und nicht nur diejenigen, die übereinstimmen.
Für jeden tipp, bin ich dankbar.
LG
|
|
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 21.08.2012, 16:36
Titel: Re: if-schleife
|
 |
Hallo,
Wenn A ein Vektor ist, was erwartest Du dann für "if A == dat1(j,1)"? Meinst Du vielleicht "if any(A == dat1(j, 1))"?
Die Funktion ISMEMBER wird auch weiterhelfen.
Gruß, Jan
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.08.2012, 18:08
Titel:
|
 |
sorry, meinte natürlich:
lg
|
|
|
Sirius3 |

Forum-Guru
|
 |
Beiträge: 441
|
 |
|
 |
Anmeldedatum: 12.11.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.08.2012, 18:50
Titel:
|
 |
Hallo,
C und D werden bei Dir jedes mal, wenn die Bedingung erfüllt ist, überschrieben.
Ist das gewollt?
Zum Finden von Fehlern hilft es oft, Beispieldaten mit nur zwei oder drei Werten
zu nehmen und Dir jeden Schritt auf der Console ausgeben zu lassen.
Beispieldaten helfen auch uns, Dein Programm zum Testen selbst auszuführen.
Grüße
Sirius
|
|
|
Gast |
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.08.2012, 19:23
Titel:
|
 |
hi!
Der Code funktioniert fehlerfrei. Nur speichert mir matlab alle einträge in C und D und nicht nur die werte, bei denen A(i) == dat1(j,1) ist. Ich brauche aber nur die Wert, bei denen die Bedingung erfüllt ist. ZB steht im 80x4 array:
25 4 9 8
128 0 96 5
89 48 3 0
99 2 8 0
Und die erste Spalte soll mit den Werte aus A abgeglichen werden. A sieht z.B aus:
99
30
25
41
dann möchte ich für C und D haben:
C = 4, 2
D = 9,8
weil bei A=B=99 und A =B=25 erfüllt ist.
In meiner schleife macht matlab:
C = 4 0 48 2
D = 9 96 3 8
@Sirius: habe in der schleife bei C und D den Index eingeführt.
Hoff das ganze ich einigermaßen verständlich, vielleicht kann mir ja jemand helfen
LG
|
|
|
Sirius3 |

Forum-Guru
|
 |
Beiträge: 441
|
 |
|
 |
Anmeldedatum: 12.11.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.08.2012, 22:59
Titel:
|
 |
Hallo,
bei mir funktioniert es einwandfrei. Steht bei Dir in C und D schon
vorher irgendwelche Werte drin?
Mein Code:
oder
Falls die Werte in dat1(j,1) nicht doppelt vorkommen, geht auch:
Grüße
Sirius
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|