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 in Abhängigkeit von Variable erstellen

 

niii58
Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 15.05.14
Wohnort: Deutschland
Version: ---
     Beitrag Verfasst am: 03.06.2014, 10:03     Titel: Matrix in Abhängigkeit von Variable erstellen
  Antworten mit Zitat      
Hallo,

ich bin gerade dabei eine Matrix durch Aufteilen einer anderen Matrix zu erstellen.
Das ganze sieht so aus:

Code:
....
elseif x<= 32

 input_ifft1 = [input_ifft_beginn(1:57,1: (x-1))...            
                         input_ifft_beginn(1:57,x).*zeros(57,1)...
                              input_ifft_beginn(1:57,(x+1):32)];

end
....


Die Variable x bekomme ich aus einem Vector (x= pos_vector(n)), wobei n in einer For-Schleife hochläuft.

Wenn ich mir den Wert x = pos_vector(n) für zb. n=1 ausgeben lasse erhalte ich auch meinen Wert "32" aus dem Vektor.

Leider bekomme ich aber immer den Fehler:
Dimension 2 is fixed on the left-hand side but varies on the right ([57 x 32] ~= [57 x :?]).

Muss die Variable zum benutzen in einer Matrix ein bestimmtes Format haben?
Kann mir jemand weiter helfen?


Viele Grüße!

nii58
Private Nachricht senden Benutzer-Profile anzeigen


Mmmartina
Forum-Meister

Forum-Meister


Beiträge: 745
Anmeldedatum: 30.10.12
Wohnort: hier
Version: R2020a
     Beitrag Verfasst am: 03.06.2014, 13:59     Titel: Re: Matrix in Abhängigkeit von Variable erstellen
  Antworten mit Zitat      
Erstelle bitte ein lauffähiges Minimalbesipeil erstellen, mit beispielhaft vorbelgten Variablen.
niii58 hat Folgendes geschrieben:

Muss die Variable zum benutzen in einer Matrix ein bestimmtes Format haben?

Jein. Grundsätzlich kannst du jede Matrixgröße verwenden.
Die Variblengrößen müssen aber richtig zusammenpassen. Du kannst nicht
einen Vektor der Länge 10 mit einem der Länge 8 zu einer 2x10 Matrix zusammenpacken.
_________________

LG
Martina

"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
Private Nachricht senden Benutzer-Profile anzeigen
 
niii58
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 15.05.14
Wohnort: Deutschland
Version: ---
     Beitrag Verfasst am: 04.06.2014, 08:57     Titel:
  Antworten mit Zitat      
Hey,

ich stelle es jetzt mal etwas genauer dar. Hoffentlich verständlich Smile


data ist ein eine (1197x1) Matrix die der Funktion übergeben wird.

Code:

position = [1 2 3 2 32];


    data = reshape(data,21,57).';
         input_help = 4*[ data(:,1:11) zeros(57,11) ...
                data(:,12:21)];
         
        input_beginn = input_help;

 for n = 1:5
       
           x = position(n);

            if x == 1
               input1 = [input_beginn(1:57,1).*zeros(57,1)...
               input_beginn(:,2:32)];
               input_ifft_beginn = input_ifft1;
            elseif x == 32
               input1 = [input_beginn(:,1:31)...
               input_beginn(1:57,32).*zeros(57,1)];
               input_beginn = input1;
             else
                input1 = [input_beginn(1:57,1:(x-1))...
                                input1(1:57,x).*zeros(57,1)...
                                input_beginn(1:57,(x+1):32)];
               input_beginn = input1;                
            end
end      
 



Das Ziel ist es einzelne Spalten (bis zu 5 verschiedene) Null zu setzen.
Wenn man sich nun position(n) ausgeben lässt erhält man auch die Werte dieses Vektors und man springt in die If-Abfrage rein.
Allerdings kommt der Fehler in dem else-Case wo ich das x zum erstellen einer neuen Matrix benutze.
Woran könnte das liegen?


Der Fehler lautet mit Verweis auf die Zeile nach dem else:
Zitat:
Dimension 2 is fixed on the left-hand side but varies on the right ([57 x 32] ~= [57 x Confused]).




Gibt es vielleicht auch eine andere Möglichkeit einzelne Spalten mitten drin Null in Abhängigkeit von einer Variablen??


LG und schon mal vielen Dank Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
niii58
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 15.05.14
Wohnort: Deutschland
Version: ---
     Beitrag Verfasst am: 04.06.2014, 16:10     Titel:
  Antworten mit Zitat      
niii58 hat Folgendes geschrieben:
Hey,

ich stelle es jetzt mal etwas genauer dar. Hoffentlich verständlich Smile


data ist ein eine (1197x1) Matrix die der Funktion übergeben wird.

Code:

position = [1 2 3 2 32];


    data = reshape(data,21,57).';
         input_help = 4*[ data(:,1:11) zeros(57,11) ...
                data(:,12:21)];
         
        input_beginn = input_help;

 for n = 1:5
       
           x = position(n);

            if x == 1
               input1 = [input_beginn(1:57,1).*zeros(57,1)...
               input_beginn(:,2:32)];
               input_beginn = input1;
            elseif x == 32
               input1 = [input_beginn(:,1:31)...
               input_beginn(1:57,32).*zeros(57,1)];
               input_beginn = input1;
             else
                input1 = [input_beginn(1:57,1:(x-1))...
                                input1(1:57,x).*zeros(57,1)...
                                input_beginn(1:57,(x+1):32)];
               input_beginn = input1;                
            end
end      
 



Das Ziel ist es einzelne Spalten (bis zu 5 verschiedene) Null zu setzen.
Wenn man sich nun position(n) ausgeben lässt erhält man auch die Werte dieses Vektors und man springt in die If-Abfrage rein.
Allerdings kommt der Fehler in dem else-Case wo ich das x zum erstellen einer neuen Matrix benutze.
Woran könnte das liegen?


Der Fehler lautet mit Verweis auf die Zeile nach dem else:
Zitat:
Dimension 2 is fixed on the left-hand side but varies on the right ([57 x 32] ~= [57 x Confused]).




Gibt es vielleicht auch eine andere Möglichkeit einzelne Spalten mitten drin Null in Abhängigkeit von einer Variablen??


LG und schon mal vielen Dank Smile
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.