|
agent_fux |

Forum-Anfänger
|
 |
Beiträge: 32
|
 |
|
 |
Anmeldedatum: 12.01.17
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: MATLAB R2016b student use
|
 |
|
|
 |
|
Verfasst am: 23.01.2017, 11:23
Titel:
|
 |
Hallo ich versuche auch mit dem Code von Harald die gesamte Zeile ausgeben zu lassen. Aber ich habe nur Zahlen in meinen Array. Leider klappt die Funktion
nicht und ich erhalte dieses Fehlermeldung:
Wie funktioniert es richtig?
|
|
|
Gesplittet: 23.01.2017, 11:38 Uhr von Jan S Von Beitrag Komplette Zeilen aus einem Cell-Array extrahieren aus dem Forum Programmierung |
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 23.01.2017, 11:46
Titel:
|
 |
Hallo agent_fux,
Bitte hänge eine neue Frage nicht an einen bestehenden Thread an. Danke!
Die Fehlermeldung klingt eindeutig: Das Argument von
cell2mat
ist kein Cell-Array. Was ist also "C(:,27)"?
Gruß, Jan
|
|
|
agent_fux |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 32
|
 |
|
 |
Anmeldedatum: 12.01.17
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: MATLAB R2016b student use
|
 |
|
|
 |
|
Verfasst am: 23.01.2017, 12:27
Titel:
|
 |
C ist meine Matrix der Dimension 5427x43 double. Und es soll mir die gesamte Zeile ausgegeben werden, wenn der Wert in Spalte 27 mit einem vorgegebenen Wert übereinstimmt.
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 23.01.2017, 13:59
Titel:
|
 |
Hallo agent_fux,
Wenn C eine DOUBLE Matrix ist, kannst Du
cell2mat
einfach weglassen, denn dieser Befehl wandelt ein Cell-Array in eine Matrix um. Mangels Cell-Type ist eine solche Umwandlung aber weder möglich nocht nötig.
Dies ist jetzt noch ein Logical Vektor. Wenn Du die ganze Spalte haben möchtest, brauchst Du wahrscheinlich noch ein
any
oder
all
.
Gruß, Jan
|
|
|
agent_fux |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 32
|
 |
|
 |
Anmeldedatum: 12.01.17
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: MATLAB R2016b student use
|
 |
|
|
 |
|
Verfasst am: 23.01.2017, 15:27
Titel:
|
 |
any
oder
all
liefert mir nur die logischen Werte 0 oder 1.
Mittlerweile habe ich eine Lösung gefunden: Ich suche den Wert in der Spalte mit
find
und lasse mir die Koordinaten ausgeben.
So bekomme ich die gesamte gesuchte Zeile extrahiert.
|
|
|
agent_fux |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 32
|
 |
|
 |
Anmeldedatum: 12.01.17
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: MATLAB R2016b student use
|
 |
|
|
 |
|
Verfasst am: 23.01.2017, 16:35
Titel:
|
 |
Jetzt möchte ich das ganze erweitern. Und zwar sollen gleich mehrere Zeilen auf einmal extrahiert werden.
Zunächst suche ich nach den Zeilenindizes meiner Matrix C.
Dazu habe ich einen Spaltenvektor z = [1;2;3;4;5], der die Werte enthält, nach denen in meiner Matrix in Spalte 28 gesucht werden soll.
Hier bekomme ich als Ergebnis einen Spaltenvektor mit 5 leeren Zeilen. Warum?
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 24.01.2017, 11:58
Titel:
|
 |
Hallo agent_fux,
In
kann man das
find
weglassen. Das heißt dann "logical indexing" und es läuft schneller. Ein entsrpechender Hinweis sollte im Editor angezeigt werden.
Zitat: |
Ergebnis einen Spaltenvektor mit 5 leeren Zeilen |
Was genau bezeichnest Du hier als "Ergebnis"? Wie kann ein Spaltenvektor 5 leere Zeilen enthalten?
In der Schleife aus Deinem letzten Post wird der Inhalt von "r" in jeder Iteration überschrieben. Das ist bestimmt nicht gewollt.
Die Schleife läuft über die 5 Elemente von z, "C(i, 28)" ist dann nicht die ganze Spalte, sondern auch nur die ersten 5 Elemente.
Wie wäre dies:
Gruß, Jan
|
|
|
agent_fux |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 32
|
 |
|
 |
Anmeldedatum: 12.01.17
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: MATLAB R2016b student use
|
 |
|
|
 |
|
Verfasst am: 24.01.2017, 13:04
Titel:
|
 |
Cool, Dein Code funktioniert so, wie es sein soll. Danke!
|
|
|
|
|
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.
|
|