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

Matrixschaltblock für variable Matrixeinträge von außen

 

Waldemar
Forum-Century

Forum-Century


Beiträge: 100
Anmeldedatum: 14.10.11
Wohnort: Neuss
Version: R2011b
     Beitrag Verfasst am: 08.11.2012, 14:32     Titel: Matrixschaltblock für variable Matrixeinträge von außen
  Antworten mit Zitat      
Hallo,

als erstes, ich arbeite zum ersten mal mit Simulink, deswegen bitte ich schon mal um Nachsicht.

ich suche einen Matrixschaltblock, bei dem ich die einzelnen Matrixeinträge (Variablen) von außen zu füge und der Matrixschaltblock mir daraus eine Matrix erstellte!
(Meine resultierende Matrix soll die Dimensionen 7x3 haben.)

Bisher habe ich:

Habe anfangs 21 Konstanten-Schaltblöcke mit "constant" gebildet und die mit "Matrix Concatenate" zu einem Vektor zusammengefügt. Jetzt müsste ich einen Matrixschaltblock haben, der die Einträge des Vektors Zeile für Zeile auffüllt.

Gibts so was?

MfG, Waldemar

PS: Im Anhang ein Screenshot von dem relevanten Ausschnitt.

Simulink.jpg
 Beschreibung:

Download
 Dateiname:  Simulink.jpg
 Dateigröße:  31.32 KB
 Heruntergeladen:  642 mal

_________________

Im "ich brauch Hilfe"-Status
Private Nachricht senden Benutzer-Profile anzeigen


knilumis_baltaM
Forum-Century

Forum-Century


Beiträge: 241
Anmeldedatum: 20.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.11.2012, 16:06     Titel:
  Antworten mit Zitat      
Zitat:

Jetzt müsste ich einen Matrixschaltblock haben, der die Einträge des Vektors Zeile für Zeile auffüllt.


Was meinst du damit?

Nebenbei:
Willst du wirklich für jede Komponente der Matrix ein Constant Block Nehmen? Du kannst zum Beispiel ein Constant Block für jede Reihe deiner gewünschten Matrix nehmen (brauchst dann nur 7 blöcke). Schreib in einen Constant Block zum Beispiel:
[1 2 4] oder [variable1 variable2 variable4].
Das wäre dann mal eine Zeile.

PS: Was willst du mit der Matrix machen? Ist es keine alternative die Matrix im workspace zu definieren und die Matrix mit einem constanten block ausgeben?
Private Nachricht senden Benutzer-Profile anzeigen
 
Waldemar
Themenstarter

Forum-Century

Forum-Century


Beiträge: 100
Anmeldedatum: 14.10.11
Wohnort: Neuss
Version: R2011b
     Beitrag Verfasst am: 08.11.2012, 17:49     Titel:
  Antworten mit Zitat      
Hallo knilumis_baltaM,

danke für deine Antwort.

Zu 1):
Code:
Willst du wirklich für jede Komponente der Matrix ein Constant Block Nehmen? Du kannst zum Beispiel ein Constant Block für jede Reihe deiner gewünschten Matrix nehmen (brauchst dann nur 7 blöcke). Schreib in einen Constant Block zum Beispiel:
[1 2 4] oder [variable1 variable2 variable4].
Das wäre dann mal eine Zeile.


Später werden die einzelnen "Constant" Blöcke gegen Berechnunsmodelle ausgetauscht. Denn jede Komponente der Matrix ist eine Variable, die abhängig vom Arbeitspunkt variiert. Deswegen ist es notwendig, jede Komponente einzeln aufzuführen.

Zu 2):
Code:
PS: Was willst du mit der Matrix machen? Ist es keine alternative die Matrix im workspace zu definieren und die Matrix mit einem constanten block ausgeben?


Die Matrix dient als Eingangsgröße für eine Funktion. Die Matrix soll lediglich die aktuellen Größen zusammenfassen und danach an die Funktion weitergeben.

Denke bislang nicht, dass ich dafür eine Matrix definieren muss, oder? Ich will ja eigentlich nur Werte zusammenfassen und weiterreichen.

Es müsste doch eine Möglichkeit geben, die Werte in einer Matrixform zusammenzufassen? Wobei zu beachten ist, dass die Werte, wie sie aufgelistet sind, die Matrix Zeilenweise auffüllen soll.

Gibt es da etwas?

MfG, Waldemar
_________________

Im "ich brauch Hilfe"-Status
Private Nachricht senden Benutzer-Profile anzeigen
 
knilumis_baltaM
Forum-Century

Forum-Century


Beiträge: 241
Anmeldedatum: 20.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.11.2012, 12:35     Titel:
  Antworten mit Zitat      
Hey also ob es direkt etwas gibt weiß ich jetzt nicht. Was du machen könntest ist:

Deine 21 Constant Blöcke zu einem Vektor zusammenfassen (Vector
Concatenate) und das zu einem "embedded Matlab Block" bzw. "Matlab Function" (je nach Matlab Version) Block zu führen. In den Block schreibst du dann den Code der die Matrix befüllt:
Code:

function Parameter_Matrix = fcn(Parameter_Vektor)
%#codegen
mat = zeros(7,3);
index = 1;
for ind = 1:7
    for jnd = 1:3
        mat(ind,jnd) = Parameter_Vektor(index);
        index = index +1;
    end
end
Parameter_Matrix = mat;
 

Dieser Code z.B. liefert dir die Matrix:
1 2 3
4 5 6
7 8 9
10 11 12
13 14 15
16 17 18
19 20 21
(Konstanten haben den selben Wert wie ihre Position im Vektor/Reihenfolge)
Private Nachricht senden Benutzer-Profile anzeigen
 
Waldemar
Themenstarter

Forum-Century

Forum-Century


Beiträge: 100
Anmeldedatum: 14.10.11
Wohnort: Neuss
Version: R2011b
     Beitrag Verfasst am: 14.11.2012, 16:28     Titel:
  Antworten mit Zitat      
Hallo,

Vielen Dank für deine Mühe!
Hab es ungefähr auch so umgesetzt!!

MfG, Waldemar
_________________

Im "ich brauch Hilfe"-Status
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.