|
tim91 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.10.2014, 13:42
Titel: Wert in Array einfügen
|
 |
Hallo zusammen,
ich würde gerne in einen Vektor an eine beliebgen n-te Stelle einen Wert einfügen.
Mit welchem Befehl schaffe ich das?
Vielen Dank.
|
|
|
|
|
Nras |

Forum-Meister
|
 |
Beiträge: 608
|
 |
|
 |
Anmeldedatum: 21.02.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.12.0.635 (R2011a)
|
 |
|
|
 |
|
Verfasst am: 20.10.2014, 14:31
Titel:
|
 |
Hallo,
vielleicht soetwas:
Damit fügst du an der n-ten Stelle (3) den Wert w (17) ein.
Falls das nicht das gewünschte ist, bitte noch mal detaillierter nachfragen. Am besten mit Beispiel.
Viele Grüße,
Nras-
|
|
|
tim912 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.10.2014, 14:54
Titel: Spalte einfügen
|
 |
Vielen Dank super,
wie funktioniert es wenn ich eine ganze spalte an n-ter stelle einfügen möchte?
|
|
|
Nras |

Forum-Meister
|
 |
Beiträge: 608
|
 |
|
 |
Anmeldedatum: 21.02.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.12.0.635 (R2011a)
|
 |
|
|
 |
|
Verfasst am: 20.10.2014, 15:27
Titel:
|
 |
Hallo,
das geht durch Angabe der Zeilenauswahl mit dem Doppelpunkt für alle Zeilen. Zusätzlich müssen natürlich die Dimensionen stimmen
In Worten: Nimm von x alle Zeilen der ersten n-1 Spalten, setze dann die neue Spalte w dran und dann nimm alle Zeilen der Spalten von n bis zum Ende und hänge sie dran.
Viele Grüße,
Nras.
|
|
|
tim91 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.10.2014, 15:41
Titel: Genau danke!
|
 |
Perfekt,
ein Platz in der Danksagung meiner Bachelorarbeit ist dir sicher...
;D
|
|
|
Pendler01 |

Forum-Newbie
|
 |
Beiträge: 8
|
 |
|
 |
Anmeldedatum: 30.10.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.10.2017, 20:46
Titel:
|
 |
|
 |
|
Hallo zusammen,
auch wenn der Thread schon etwas älter ist, muss ich das Thema nochmal aufgreifen.
Ich habe einen Datensatz mit knapp 400 k Werten (:,1), aus welchem ich Werte entnehmen möchte, die größer oder kleiner einem vorgegebenen Wert sind.
Soweit so gut. Nach der Bearbeitung des verbleibenden Datensatzes möchte ich diese Werte (value_down / value_up) an ihrer ehemaligen Position im Datensatz wieder im integrieren. Hierfür habe ich oben genannten Code genommen.
Grundsätzlich enstehen dabei mit dem Beispieldatensatz folgende Probleme:
1. Bei der Einpflegung von zeros zur Vermeidung von Indexüberschreitungen im bearbeiteten Datensatz yfit (siehe dritte Codezeile) überschreite ich die maximale Größe von Spalten in Matlab, ergo muss ich auf Zeilen wechselen. Hier erhalte ich den Fehler:
2. Daten die am Ende des Datensatzes wieder eingefügt werden (also dessen gespeicherte Position größer ist,als der Vektor yfit_input), überschreiten logischerweise den Index.
Anbei mal die beiden Testdatensätze.
3. Und noch eine kurze Logikfrage, theoretisch müsste ich doch die Werte ihrer Positionierung nach aufsteigend auch wieder einpflegen, weil ich sonst die Positionierung im gesamten Datensatz verändere. Kurz wenn ich erst alle value_up einfüge, dann sind die Ursprungspositionen durch nicht mehr gegeben. Gibt es einen einfachen Weg das zu umgehen?
So erhalte ich ja logische Werte.
Danke für jede Hilfe.
Julian
Beschreibung: |
|
 Download |
Dateiname: |
Testdaten.mat |
Dateigröße: |
431.28 KB |
Heruntergeladen: |
350 mal |
|
|
|
denny |

Supporter
|
 |
Beiträge: 3.853
|
 |
|
 |
Anmeldedatum: 14.02.08
|
 |
|
 |
Wohnort: Ulm
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 26.10.2017, 12:46
Titel:
|
 |
|
 |
|
Hallo
zu 1) Du benutzt einfach die Funktion
zeros
falsch. Wozu verwendest du hier den Doppelpunkt? so wird eine Matrix der Dimension n*n1*n2....n(m-1)*n(m) erzeugt, was mit Sicherheit irgendwann die Speichergrenzen sprengt.
Aber keine Ahnung was du hier genau zu erreichen versuchst. Wolltest du eine Matrix der Dimension n*m erzeugen, wo
n = length(yfit)
und
m = n*3
Dann wäre es so richtig:
zu den Fehlermeldung selbst, da versuchst du Spaltenvektor mit Zeilenvektor zu verbinden, das läuft halt schief
zu 2) Wenn du Indizien aus Dataset auf yfitinput verwenden möchtest, dann müssen diese Matrizen/Vektoren gleich groß sein. Das musst du aber schon davor sicherstellen, sonst kannst du die Werte an die ehemalige Position nicht integrieren, wenn deine Dimensionen nicht stimmen.
Da ich nicht weiß was yfit ist und wie diese Variable erzeugt wird, kann man an der Stelle schwer, einen richtigen Tipp geben.
zu 3) Den Code von oben ist nicht für dein Problem geeignet.
Oben wird die Matrix/Vektor um Werte erweitert also vergrößert. Oder nicht vorhandener Vektor/nicht vorhandene Matrix aus Werten zusammengesetzt.
Bei dir bewirkt es aber, dass der Vektor stets erweitert wird.
Bei jedem Erweitern , verändern sich die Dimensionen, was zu verschieben der Positionen führt.
Du möchtest aber doch die Postionen beibehalten, dazu hast du bereits Indizien
z.B du möchtest die gefundenen Werte in anderen Vektor kopieren, dann mach doch so:
noch kompakter:
|
|
|
|
|
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.
|
|