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

Matrix verlängern

 

jazzalex
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 26.09.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.09.2014, 12:46     Titel: Matrix verlängern
  Antworten mit Zitat      
Hallo zusammen,

ich möchte einen eindimensionalen Vektor um 60 Felder verlängern, die alle den Wert des letzten Feldes enthalten sollen. Die versuchte ich auf die folgenden Weise:

Code:

z = size(output);

for k=z+1:z+60
    output(k) = output(z);
end
 


Nun erhalte ich allerdings diese Fehlermeldung:

error: A(I) = X: X must have the same size as I

Ich würde mich über Hinweise freuen, wie das Problem zu lösen ist.

Danke im voraus,
Gruß

Alex
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 26.09.2014, 12:58     Titel:
  Antworten mit Zitat      
Hallo,

du meinst vermutlich
z = length(output);

Einfacher wäre:
Code:
output(end+1:end+60) = output(end);


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
jazzalex
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 26.09.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.09.2014, 22:56     Titel:
  Antworten mit Zitat      
Hallo Harald,

ja - so hat es geklappt, danke für die rasche Antwort !

Was ich in diesem Zusammenhang feststellte:

1.) Length und Size funktionieren beide gleich (zumindest mit Octave, was ich im Moment nutze). Habe aber auch Zugang zur aktuellen Matlab-Version, wo ich es nochmal testen werde.

2.) Alterntiv klappt meine Lösung so:
Code:

z = size(output);
value = output(z);
for k=z+1:z+60
    output(k) = value(1);
end
 


Und dann gleich noch eine weitere Frage:

Anstelle des letzten Wertes würde ich die neuen Felder gern zwar erzeugen aber mit keinem Wert belegen - also quasi NaN, was aber dazu führt, dass mein gesamtes Signal zu NaN wird. Gibt es eine Alternative ?

EDIT: Stimmt nicht: Nur mein Normalisierungs-Call und freqz kommen offensichtlich mit den NaN-Werten zurecht und führen zu dem Problem. Der Rest funktioniert. Am Ende werfe ich die NaN-Werte wieder raus und kann die Normailiserung und freqz auf das Signal anwenden.

Danke, Gruß

Alex
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 27.09.2014, 10:30     Titel:
  Antworten mit Zitat      
Zitat:
1.) Length und Size funktionieren beide gleich (zumindest mit Octave, was ich im Moment nutze). Habe aber auch Zugang zur aktuellen Matlab-Version, wo ich es nochmal testen werde.

length gibt die grösere von den dimensionen zurück. size hingegen giebt einen vektor mit der länge der einzelnen diemensionen. ich würde empfeheln immer size mit entsprechender dimensionsangabe zu benutzen. dann kommt es nicht zu unerwartetem verhalten.
Zitat:
Stimmt nicht: Nur mein Normalisierungs-Call und freqz kommen offensichtlich mit den NaN-Werten zurecht und führen zu dem Problem.

vieleicht hilft es dir die vektoren mit logischer indizierung zu übergeben in der art.
Code:

grüße
_________________

richtig Fragen
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 - 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.