|
|
Zahlen einer Matrix Ersetzen und neue Matrix erstellen |
|
Johannes40 |

Forum-Newbie
|
 |
Beiträge: 7
|
 |
|
 |
Anmeldedatum: 22.05.16
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.05.2016, 11:03
Titel: Zahlen einer Matrix Ersetzen und neue Matrix erstellen
|
 |
Hallo
Ich beschäftige mich noch nicht lange mit Matlab und habe eine Frage.
Ich habe z.B. folgende Matrix gegeben:
A =[ 1 2 1 2; 1 2 1 2]
Nun möchte ich aus der Matrix A eine Matrix B erstellen, in der die 1 durch 10 und die 2 durch 20 ersetzt wird. Einmal soll es ohne und einmal mit Schleife programmiert werden, leider weiß ich auch nicht was Schleifen sind?
Für den 1.Fall habe ich folgenden Ansatz:
A(find(A==1))=10;A(find(A==2))=20
Aber wie mache ich es, ohne die Matrix A zu verändern? Also die neue Matrix soll B heißen und A soll nicht verändert werden.
Ich bedanke mich für jede Hilfe!
|
|
|
|
|
gs |

Forum-Century
|
 |
Beiträge: 172
|
 |
|
 |
Anmeldedatum: 17.03.16
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.05.2016, 07:09
Titel:
|
 |
Guten Morgen,
es gibt viele Möglichkeiten dein Problem zu lösen. Dein Ansatz ist erstmal nicht verkehrt. Du kannst deine Matrix A "klonen" und schon hast du die ursprüngliche Matrix noch in deinen Workspace.
Mit deiner Schleife sind auch verschiedene Möglichkeiten denkbar. Am einfachsten ist es sich vor dem Start der Schleife die Größe der Matrix zu merken und die ursprüngliche Matrix zu "klonen".
Man kann es z.B. folgendermaßen lösen:
Natürlich gibt es noch einfachere Varianten. Ich wollte dir hierbei nur die Schleifen zeigen. Prinzipiell geht das so:
1. Matrix definieren
2. Größe der MAtrix ermitteln (Zeilen, Spalten)
3. mittels geschachtelter for-Schleife alle Elemente durchlaufen und auf Werte Prüfen, ggf. ersetzen
4. Fertige Matrix bewundern
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 23.05.2016, 13:41
Titel: Re: Zahlen einer Matrix Ersetzen und neue Matrix erstellen
|
 |
Hallo Johannes40,
Schleifen werden unter
doc while
und
doc for
gut erklärt.
In Deinem Beispiel kann man auch auf das
find
verzichten:
Das nennt sich "logical indexing" und ist effizienter.
Gruß, Jan
|
|
|
Johannes40 |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 7
|
 |
|
 |
Anmeldedatum: 22.05.16
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.05.2016, 21:06
Titel: Re: Zahlen einer Matrix Ersetzen und neue Matrix erstellen
|
 |
Jan S hat Folgendes geschrieben: |
Hallo Johannes40,
Schleifen werden unter
doc while
und
doc for
gut erklärt.
In Deinem Beispiel kann man auch auf das
find
verzichten:
Das nennt sich "logical indexing" und ist effizienter.
Gruß, Jan |
Danke!
gs hat Folgendes geschrieben: |
|
Danke! Und der Tipp mit dem klonen der Matrix hat mir sehr viel weitergeholfen
|
|
|
Tom_Gast |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.05.2016, 21:22
Titel:
|
 |
führt übrigens zum selben Ergebnis
Gruß Tom
|
|
|
Johannes40 |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 7
|
 |
|
 |
Anmeldedatum: 22.05.16
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.05.2016, 21:27
Titel:
|
 |
Tom_Gast hat Folgendes geschrieben: |
führt übrigens zum selben Ergebnis
Gruß Tom |
In dem Fall ja, aber das geht doch nicht immer mit jeder Zahl Aber 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.
|
|