WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

darkpsy3

 

Insert value in matrix

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.06.2020, 15:03     Titel: darkpsy3
  Antworten mit Zitat      
Hallo liebe Community

ich bin noch unerfahren und hänge an einem einfachen Problem

Ich habe zwei Vektroren :
V1 =
1
2
3
4
5
6
1
2
3
4
5
6
1
2
3
4
5
6

V2=
0.2
0.6
0.4


Nun würde ich die Werte des zweiten Vektors gerne iteratif immer nach dem dritten Wert des ersten Vektors einfügen also so:

V3=
1
2
3
0.2
4
5
6
1
2
3
0.6
4
5
6
1
2
3
0.4
4
5
6

Ich nehme an, das wäre am einfachsten mit einer Schleife. Jedoch stehe ich auf dem Schlauch. Ich würde wahrscheinlich sowas vorschlagen:

for i = length(V1) +3
V1 = V1(i) + V2(i)
end

Danke für eure Hilfe


T16
Forum-Century

Forum-Century


Beiträge: 145
Anmeldedatum: 31.01.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.06.2020, 08:42     Titel:
  Antworten mit Zitat      
Mit einer Schleife liegst du richtig, bei deinem Code ich noch einige Probleme die du aber auch ganz schnell selbst entdeckst wenn du deinen Code ausführst. Da kriegst du direkt die Fehlermeldung

Index exceeds the number of array elements (1Cool

Code:
for i = length(V1) +3
V1 = V1(i) + V2(i)
end


denn du hast nach V1 das (i) vergessen, damit greifst du in jedem Schleifendurchlauf nicht auf ein Element des Vektors zu, sondern überschreibst den Vektor mit einem Skalar, das geht natürlich im nächsten Schleifendurchlauf direkt in die Hose.

Wenn sich die Länge eines Vektors ändert würde ich immer empfehlen zunächst einen neuen Ergebnisvektor V3 anzulegen und wenn nötig nach dem Schleifendurchlauf V1 mit V3 zu überschreiben.

Mit V3(i)=V1(i) + V2(i) addierst du nur die Werte aus V1 und V2 anstatt Werte gezielt einzufügen. Du wirst vermutlich nicht umhin kommen noch eine if-else Abfrage einzubauen um festzustellen, ob dein aktueller Index i durch 3 teilbar ist und damit ein Wert aus V2 eingefügt werden muss. Das kann man mit der mod-Funktion feststellen.

https://de.mathworks.com/help/matlab/ref/mod.html
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.