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

Matrizenliste in abhängigkeit eines Parameters

 

Frederic

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.10.2008, 01:28     Titel: Matrizenliste in abhängigkeit eines Parameters
  Antworten mit Zitat      
Hallo Leute

Ich will folgendes machen:

Ich habe folgende Variable x:
Code:


Dann habe ich eine Matrix, welche von x abhängig ist. Z.B.:
Code:
H=[0 0;0 x];


Wie kann ich eine Liste von Matrizen erstellen mit den Elementen H(x=0), H(x=1)... H(x=5)?
Also:
Code:
H{1}=[0 0;0 0]
H{2}=[0 0;0 1]
...
H{6}=[0 0;0 5]


Das Ganze soll natürlich für ein beliebiges H anwendbar sein.

Und es muss nicht umbedingt ein Cell-Array sein, ein mehdimensionales Array ist auch ok.

Hat jemand eine Ahnung?

Gruss Frédéric


Helmert
Forum-Century

Forum-Century


Beiträge: 121
Anmeldedatum: 04.09.08
Wohnort: Karlsruhe
Version: 2011a
     Beitrag Verfasst am: 30.10.2008, 09:35     Titel:
  Antworten mit Zitat      
Vorschlag:
Code:

x = 0:5;
n = length(x);
H = zeros(2,2,n);
H(2,2,:) = x
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Frederic

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.10.2008, 19:22     Titel:
  Antworten mit Zitat      
Hi Helmert

Danke für den Vorschlag. Das geht schonmal in die richtige Richtung, aber es soll für ein beliebiges H gelten.

Was mich stört ist die Zuweisung:
Code:
H(2,2,:) = x


Für ein komplizierteres H geht das nämlich nicht mehr. Z.B.:
Zitat:
H=[0 2*x; cos(x) 0]


Aber so wie es aussieht, gibt es keine "einfache" Lösung. Ich hoffte Matlab würde einen solchen Befehl anbieten.

Gruss,
Frederic
 
Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 31.10.2008, 12:19     Titel:
  Antworten mit Zitat      
Hallo Frederic,

der Code lässt sich doch belibig verallgemeinern:

Code:
m = 2;    % Spalten von H
n = 2;    % Zeilen von H
s(1).Pos = [1,2];    % Position für 2*x
s(2).Pos = [2,1];    % Position für cos(x)

x = 0:5;
s(1).Val = 2*x;
s(2).Val = cos(x);

H = zeros(m,n,length(x));
for ind = 1:length(s)
    H(s(ind).Pos(1),s(ind).Pos(2),:) = s(ind).Val;
end


Das ist für dieses kleine Problem natürlich sehr aufwändig, aber wenn Du große Flexibilität brauchst, könnte es das Richtige für Dich sein. Voraussetzung ist hier nur, dass es sich bei H immer um Matrizen handelt, und dass die s.Val immer gleich lang sind.

Herzliche Grüße
Bijick
_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
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.