|
|
Vektoreinträge vervieltältigen und in neuen Vektor schreib |
|
Julia1991 |

Forum-Anfänger
|
 |
Beiträge: 18
|
 |
|
 |
Anmeldedatum: 19.08.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.08.2013, 13:16
Titel: Vektoreinträge vervieltältigen und in neuen Vektor schreib
|
 |
|
 |
|
Hallo liebes Matlab Forum,
Ich bin gerade dabei ein paar Übungen zu Matlab zu machen, aber habe leider ein Problem und hoffe ihr könnt mir da weiterhelfen.
Ich habe einen Spaltenvektor mit 20 Einträgen und 2 weitere mit jeweils 60 Einträgen. Ich möchte Sie miteinander zu einer Matrix verbinden.
Aus dem 20-Einträge-Vektor (als Bild angehangen) möchte ich eine 60-Einträge-Vektor machen und zwar wie folgt:
Die Einträge des neuen Vektors soll in den ersten 3 Zeilen den ersten Eintrag der alten Matrix besitzen. Bei meinem Beispiel wäre das also:
Mneu = [3;3;3;7;7;7;8;8;8;usw.]
Das müsste wahrscheinlich mit einer Schleife gehen, aber ich weiß nicht wie das geht. Ich bin noch nicht so gut im Programmieren... :'(
Ich hoffe die Frage wurde noch nie gestellt, da ich in der Suche nichts dazu gefunden habe.
Danke und iebe Grüße,
Julia!
Beschreibung: |
|
 Download |
Dateiname: |
Unbenannt.JPG |
Dateigröße: |
18.35 KB |
Heruntergeladen: |
335 mal |
|
|
|
|
|
Daewun |

Forum-Anfänger
|
 |
Beiträge: 19
|
 |
|
 |
Anmeldedatum: 08.06.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.08.2013, 13:34
Titel:
|
 |
Hallo Julia,
Als ganz schnelle Lösung würde ich vorschlagen, wie du auch sagtest mit einer schleife
das ist aber eine sehr spontane Lösung, es gibt mit sicherheit elegantere und schnellere Versionen...
|
|
|
Julia1991 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 18
|
 |
|
 |
Anmeldedatum: 19.08.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.08.2013, 13:44
Titel:
|
 |
Danke für die rasante Antwort!
Ich habe den Code ausprobiert und er sieht bei mir wie folgt aus:
Knotennummer ist dabei der Name des Vektors mit 20 Einträgen, doch leider bekomme ich eine Fehlermeldung:
"In an assignment A(I) = B, the number of elements in B and I
must be the same."
Ich verstehe das Problem so, dass mein Mneu und Knotennummer nicht die selbe Länge haben. ?
|
|
|
HauNei |

Forum-Fortgeschrittener
|
 |
Beiträge: 55
|
 |
|
 |
Anmeldedatum: 18.04.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.08.2013, 14:02
Titel:
|
 |
Hallo,
so wie ich es sehe, musst du in der For-schleife noch angeben welchen Wert du übergeben willst.
Also in der Art:
Zitat: |
Mneu(i) = Knotennummer(i) |
Mit diesem Befehl schreibst du in Mneu an der Stelle i, den Wert von Knotennummer an der Stelle i.
Wenn du die unten beschriebene Schleife verwendet willst, müsste es dann wie folgt aussehn
So kannst du nun dein Vektor mit 60Werten erzeugen.
Um das ganze in eine Matrix zu schreiben, muss du mal http://www.gomatlab.de/zusammenlege.....einzige-matrix-t1068.html schaun
Ohne for-Schleife besteht die Möglichkeit es so zu lösen:
Zitat: |
Mneu(1:3:60)=Knotennummer
Mneu(2:3:60)=Knotennummer
Mneu(3:3:60)=Knotennummer
|
Grüße
|
|
|
Julia1991 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 18
|
 |
|
 |
Anmeldedatum: 19.08.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.08.2013, 14:18
Titel:
|
 |
Hat super geklappt.
Ich danke euch beiden recht herzlich!
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 20.08.2013, 08:10
Titel:
|
 |
bei schleifenlösungen sollte man immer drauf achten vorher den speicher zur reservieren. bei 60 elementen ist das unerheblich wird aber schnell langsamer bei großen matritzen
ohne schleife geht auch noch
_________________
richtig Fragen
|
|
|
Julia1991 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 18
|
 |
|
 |
Anmeldedatum: 19.08.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 28.08.2013, 11:04
Titel:
|
 |
Hallo,
ich bins wieder. Ich habe nun folgendes neues Problem und hoffe Ihr könnt mir wieder tatkräftig helfen!
Ich habe jetzt die zusammengesetzte Matrix:
1 577 -1
2 577 -2
3 577 -3
4 569 1
5 569 2
6 569 3
etc...
Nun möchte ich gern die Zeilen wo zB in der 2. Spalte 569 steht auslesen.
Wie mache ich das am besten?
Mein Ansatz ist das mit find zu machen.
Der folgende Befehl:
gibt mir einen Vektor mit den Stellennummern(1. Spalte) aus.
Doch wie verwerte ich diesen Vektor weiter?
Arbeite ich weiter mit find? Ich habe es auch mit ismember probiert, aber das hat leider auch nicht geklappt.
Ich hoffe ihr könnt mir auf die Sprünge helfen! Ich bin noch dabei das Programm zu lernen und stelle dumme Fragen
Ich hoffe es ist ok und habe darauf geachtet nicht noch ein neues Thema aufzumachen sondern diesen aufzufrischen.
Danke im Voraus!
Julia
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 28.08.2013, 11:22
Titel:
|
 |
logische indizierung ist hier sinnvoller.
_________________
richtig Fragen
|
|
|
BlackDread |

Forum-Century
|
 |
Beiträge: 212
|
 |
|
 |
Anmeldedatum: 11.05.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 2015a
|
 |
|
|
 |
|
Verfasst am: 28.08.2013, 11:22
Titel:
|
 |
Hallo Julia,
Die Frage ist nun, welchen Wert du willst?
find gibt dir den Index wieder, an dem die 569 steht. Also in deinem Beispiel die 4,5 und 6.
Wenn du jetzt z.B. die Werte aus der dritten Spalte haben willst, bei denen in der zweiten die 569 steht, würde das so gehen:
alternativ
In der Regel sollte man keine alten Threads kapern da sonst meist Themen vermischt werden.
Grüße Chris
|
|
|
|
|
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.
|
|