|
|
Daten in Matrix mit festen Spalten |
|
incredible |
Forum-Newbie
|
|
Beiträge: 5
|
|
|
|
Anmeldedatum: 25.02.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 25.02.2016, 16:24
Titel: Daten in Matrix mit festen Spalten
|
|
Hallo,
zu meinem Probelm:
ich hab eine Matrix zB: B= zeros(5,p);
und Messdaten in einem Vektor, der belieb lang ist.
Meine Messdaten sollen jetzt in die Matrix eingetragen werden, allerdings Zeilenweiße und darf p nich überschreiten, wenn die Position überschritten wird, soll in der nächsten Zeile weiter eingefügt werden.
Hab schon mehrere kleine Programme gemacht und komme einfach nicht auf die richtige Lösung.
Hier ein nicht funktonierendes Beispiel:
Hoffe mein Problem ist verständlich ausgedrückt und ihr könnt mir weiter helfen :)
|
|
|
|
|
Winkow |
Moderator
|
|
Beiträge: 3.842
|
|
|
|
Anmeldedatum: 04.11.11
|
|
|
|
Wohnort: Dresden
|
|
|
|
Version: R2014a 2015a
|
|
|
|
|
|
Verfasst am: 25.02.2016, 16:35
Titel:
|
|
in der while schleife verändern sich i und j nicht.
außerdem verstehe ich noch nicht was du erreichen willst.
meinst du
reshape
?
ein minimalbeispiel wäre hier sicherlich hilfreich zur veranschaulichung.
_________________
richtig Fragen
|
|
|
incredible |
Themenstarter
Forum-Newbie
|
|
Beiträge: 5
|
|
|
|
Anmeldedatum: 25.02.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 25.02.2016, 17:03
Titel:
|
|
Wenn ich den Vektor
v = (1:20) hab soll es in die Matrix
[ 1 2 3
4 5 6
7 8 9 ] eingespeichert werden
mit reshape funktoniert das leider nicht weil ich eigentlich ein großes Programm hab und das alles ein wenig komplexer ist :/ und eine for schleife habe die nur bis zu einem bestimmten Intervall zählt und auf eine Diagonal ähnliche Form schreibt
Dachte ich versuch es mal mit einem einfachem Beipsiel bevor ich das in das große Programm einbaue
Ist mein Problem jetzt verständlicher geworden?
|
|
|
Winkow |
Moderator
|
|
Beiträge: 3.842
|
|
|
|
Anmeldedatum: 04.11.11
|
|
|
|
Wohnort: Dresden
|
|
|
|
Version: R2014a 2015a
|
|
|
|
|
|
Verfasst am: 25.02.2016, 17:15
Titel:
|
|
dein minimalbeispiel lässt sich aber mit reshape lösen. es ist schwer vorschläge zu geben wenn das beispiel das problem nicht wiedergibt ^^
_________________
richtig Fragen
|
|
|
DSP |
Forum-Meister
|
|
Beiträge: 2.117
|
|
|
|
Anmeldedatum: 28.02.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2014b
|
|
|
|
|
|
Verfasst am: 25.02.2016, 17:16
Titel:
|
|
Hallo,
warum soll das mit reshape nicht möglich sein?
|
|
|
incredible |
Themenstarter
Forum-Newbie
|
|
Beiträge: 5
|
|
|
|
Anmeldedatum: 25.02.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.02.2016, 10:01
Titel:
|
|
Ok, nochmal auf Anfang
Zu meinem Probelm, ich hab einen Messkopf der sich hin und her bewegt(zB im Intervall von 10). Das zumessende Objekt wird übereinander gelegt und hat zB. insgesamt 98 Messtellen, welches aber auch rotiert.
Der Messkopf misst jetzt einen Wert der aber zwei Messtellen zugeordnet wird.
Diese werden jetzt in eine Matrix (nx98) eingetragen.
Ich hab jetzt eine for schleife for (1:intervall) die für das erste Intervall durchläuft, dh ich bin bei dem Punkt in der Matrix M[10,10]
Wenn der Messkopf wieder zurück läuft mit der for schleife (1:intervall) soll er weiter in der Matrix eintragen und nicht wieder bei M[n,1]starten.
Zu beachten ist dass die Matrix aber nur bis 98 läuft & dann wieder bei 1 startet.
Dachte ich veranschauliche mir das erstmal mit einem einfachen Beispiel, wie ich das mit den schleifen umsetzten kann
|
|
|
Winkow |
Moderator
|
|
Beiträge: 3.842
|
|
|
|
Anmeldedatum: 04.11.11
|
|
|
|
Wohnort: Dresden
|
|
|
|
Version: R2014a 2015a
|
|
|
|
|
|
Verfasst am: 26.02.2016, 10:22
Titel:
|
|
was ist denn n? wie kommst du mit 1:10 auf [10,10] das sind 100 werte . wie passt das zu den 98....
ich seh da noch nicht durch. mach doch mal eine einfache beispiel matrix. also nicht nx98 sondern von mir aus 3x6 und sag dann was damit passieren soll
_________________
richtig Fragen
|
|
|
incredible |
Themenstarter
Forum-Newbie
|
|
Beiträge: 5
|
|
|
|
Anmeldedatum: 25.02.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.02.2016, 11:42
Titel:
|
|
|
|
|
Sorry, weiß nicht so recht wie ich es erklären soll
Im Prinzip möchte ich einfach nur wissen wie ich das Problem von oben mit schleifen darstellen lässt, damit ich das umsetzen kann
Falls du es konkreter wissen möchtest:
n ist beliebig lang, da umsomehr Durchgänge ich mache desto länger die Matrix wird
Mit M[10,10] meinte ich eigentlich M(10,10) das ist der letzte Wert der in die Matrix engetragen wird, [korrespondierent dazu bei dem Eintrag M(10,8 ]
Bei diesem Wert bzw von dieser Position aus sollweiter eingetagen werden bei dem Rücklauf der Messung
und betrachtet bzw beachtet werden dass die Matrix aber nur 98 Spalten hat (dh. hätte ich mehr als 10 durchläufe wären wir am Matrix ende
Im Idealfall dh wäre mein Intervall 49 (einmal Vorwärts bzw Rückwärts) hätte ich diese Matrix
[1 0 .................................0 1
0 1 0.............................0 1 0
0 0 1 .........................0 1 0 0
. ..
..
0 ................1 1 0 ..............0
0 1 0 0 1
.... .....
1 0 ................................ 0 1]
Also eine Matrix mit einem X von Einträgen
|
|
|
DSP |
Forum-Meister
|
|
Beiträge: 2.117
|
|
|
|
Anmeldedatum: 28.02.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2014b
|
|
|
|
|
|
Verfasst am: 26.02.2016, 11:54
Titel:
|
|
incredible hat Folgendes geschrieben: |
Im Prinzip möchte ich einfach nur wissen wie ich das Problem von oben mit schleifen darstellen lässt, damit ich das umsetzen kann |
Dazu müsste man aber erstmal den Weg vom Vektor zu deiner gewünschten Matrix kennen. Dein Erklärung hilft mir da imho nicht weiter.
Was hat M(10,10) denn mit 98 Spalten zu tun? M(10,10) ist das 100. Element in der Matrix.
Zitat: |
Bei diesem Wert bzw von dieser Position aus sollweiter eingetagen werden bei dem Rücklauf der Messung... |
Wohin eingetragen werden? Was hat der Rücklauf mit dem Vektor zu tun?
Gruß DSP
|
|
|
incredible |
Themenstarter
Forum-Newbie
|
|
Beiträge: 5
|
|
|
|
Anmeldedatum: 25.02.16
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.02.2016, 12:51
Titel:
|
|
Wenn ich eine Matrix habe M = [1,2,3;4,5,6;7,8,9]
und dann zB eingebe M (3,2) bekomme ich 8 raus
In dem Vektor sind die Messdaten gespeichert.
Dh wenn der Kopf zurück läuft misst er ja weiter zwei Punkte und setzt weiter an in der Matrix und fängt nicht wieder in der 1. Spalte an
|
|
|
DSP |
Forum-Meister
|
|
Beiträge: 2.117
|
|
|
|
Anmeldedatum: 28.02.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2014b
|
|
|
|
|
|
Verfasst am: 26.02.2016, 13:00
Titel:
|
|
Das erklärt immer noch nichts.
Ist es denn nicht möglich mal einen Beispielvektor zu nehmen und an Hand dessen zu zeigen wie die Matrix gefüllt werden soll und was dann passieren soll wenn die Matrix die gewünschte Größe erreicht hat. Aber eben nicht mit 98 Spalten sondern nur ein paar wenigen.
Wenn du das kannst, kommst du evtl auch schon selber auf die Lösung.
|
|
|
|
|
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 - 2024
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.
|
|