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

Cell-Array from Workspace

 

Mele
Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 18.01.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.03.2010, 13:39     Titel: Cell-Array from Workspace
  Antworten mit Zitat      
Hallo zusammen

Ich habe mir einen cell-Array im Workspace angelegt:
Code:
Flasche=cell(1,20);

Diesen Array möchte ich in einer Embedded MATLAB function weiterverwenden.
Über den Block From Workspace kann ich nicht auf den Array zugreifen.

Hat einer von euch eine Idee, wie ich dies anders umsetzen kann?

Vielen Dank
Mele
Private Nachricht senden Benutzer-Profile anzeigen


Zenon
Forum-Guru

Forum-Guru


Beiträge: 292
Anmeldedatum: 20.01.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.03.2010, 14:59     Titel:
  Antworten mit Zitat      
Wofür brauchst Du da ein Cell-Array? Tuts nicht auch ein normaler Vektor?

Was genau willst Du erreichen?
Private Nachricht senden Benutzer-Profile anzeigen
 
Mele
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 18.01.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.03.2010, 15:28     Titel:
  Antworten mit Zitat      
In meinem Cell Array sollen Knoten einer Virtuellen Szene abgelegt werden.
Deshalb kann ich leider keinen normalen Vektor verwenden.
Dieser Vektor soll anschließend in der Embedded Matlab function so manipuliert werden, dass Objekte der 3D Szene verschoben werden.
Hier meine Initailisierung des Arrays, die in der Embedded Matlab function stehen soll.
Code:
Flasche{i}=vrnode(visu,Fli));

visu ist meine 3D Welt und Fl das i-te Objekt.
das ganze steht innerhalb einer for Schleife.
Grüße
Mele
Private Nachricht senden Benutzer-Profile anzeigen
 
Zenon
Forum-Guru

Forum-Guru


Beiträge: 292
Anmeldedatum: 20.01.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.03.2010, 15:42     Titel:
  Antworten mit Zitat      
Aber die Knoten bestehen doch auch nur aus Zahlen oder? Vektor, Matrix oder struct sollten in den meisten Fällen gehen...du kannst meines wissen nur einzelne zellen eines cell array in simulink bringen z.B. in dem du einen constant blocl machst und Flasche{1} da eingibst...

Ich empfehle dir eine struct zu nutzen...
Private Nachricht senden Benutzer-Profile anzeigen
 
Mele
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 18.01.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.03.2010, 15:59     Titel:
  Antworten mit Zitat      
hi ok
mit dem struct komm ich irgendwie nicht zu recht.
Ich habe versucht einen zu initialisieren:
Code:

Stachel=cell(1,20);
Stachel2=cell(1,20);
St=struct('St',Stachel,'St2',Stachel2);


Stachel und Stachel2 sind zwei cell Arrays.
Dann habe ich den Block from Workspace genommen und in diesen St.Stachel eingetragen.
Jetzt erhalte ich diese Fehlermeldung:
Error evaluating parameter 'VariableName' in 'Modell/From Workspace1': Reference to non-existent field 'Stachel'.
Ich verstehe nicht warum er das Feld nicht kennt
Danke schon einmal für deine Hilfe!!
Mele
Private Nachricht senden Benutzer-Profile anzeigen
 
Zenon
Forum-Guru

Forum-Guru


Beiträge: 292
Anmeldedatum: 20.01.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.03.2010, 08:17     Titel:
  Antworten mit Zitat      
Er erkennt das Feld nicht, weil Du es in der letzten Zeile St bzw. St2 genannt hast.

Du musst also über St.St bzw. St.St2 darauf zugreifen...

Ansonsten bin ich sehr im Zweifel ob sich Simulink mit Cell Arrays verträgt oder nicht...evtl. kannst du ja, wenn du es zwingend brauchst mittels evalin die Berechnungen im Matlab Workspace durchführen und nur die ergebnisse in Simulink übernehmen (Notlösung)...
Private Nachricht senden Benutzer-Profile anzeigen
 
Mele
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 18.01.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.03.2010, 08:42     Titel:
  Antworten mit Zitat      
hi
diesmal erhalte ich diese Fehlermeldung:Invalid matrix-format variable specified as workspace input in 'Modell/From Workspace1'. The matrix must have two dimensions and at least two columns. Complex signals of any data type and non-double real signals must be in structure format. The first column must contain time values and the remaining columns the data values

Vermutlich vertragen sich simulink und cell-Arrays nicht auch in den Hilfen gibt dazu nicht wirklich informatives

Danke für deine Hilfe
Private Nachricht senden Benutzer-Profile anzeigen
 
Zenon
Forum-Guru

Forum-Guru


Beiträge: 292
Anmeldedatum: 20.01.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.03.2010, 09:22     Titel:
  Antworten mit Zitat      
Was für Daten sind denn im Cell Array drin? Wir finden bestimmt einen Weg die in Simulink zu kriegen...wenn auch anscheinend nicht als cell array...
Private Nachricht senden Benutzer-Profile anzeigen
 
Mele
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 18.01.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.03.2010, 09:43     Titel:
  Antworten mit Zitat      
also im Workspace sind sie noch leer sollen dann aber im embedded Block mit vrnode also den knoten einer 3D Szene gefüüllt werden:
Code:
Flasche{i}=vrnode(visu,sprintf('Fl%g',i))

visu heißt meine wrl-datei, meine 3D-Szene und nach dem Komma das sind die Namen der Knoten.
das ganze natürlich wieder inerhalb einer for-schleife.

In meiner embededded MAtlab function taucht auch dies auf:
Code:
visu=vrworld('Sim_Produkt_10_Fl.wrl');

Ich weise dem visu meine Welt zu.
So wie es aussieht kann dieser Block auch den Befehl vrworld nicht umsetzen.
Letzendlich möchte ich damit meine Simulation Visualisieren.
und suche einen anderen Weg als mit einer normalen Matlabfunction, da ich dort nur einen Eingang habe.
Und auch eine andere Möglichkeit als den VR- Sink Block, da ich keine ca. 100 Knoten verbinden möchte und dazu auch noch meine Vektoren in
hundert signale aufteilen müsste.
Ich hoffe das wir eine Lösung finden werdenn
Mele
Private Nachricht senden Benutzer-Profile anzeigen
 
Zenon
Forum-Guru

Forum-Guru


Beiträge: 292
Anmeldedatum: 20.01.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.03.2010, 12:04     Titel:
  Antworten mit Zitat      
Versuch es doch erstmal mit Flasche als struct. Also Flasche.(i) (dynamic field).

Ansonsten habe ich keine Ahnung wie die 3D Animation Toolbox von Simulink funktioniert...habe nur die Basisversion...deshalb kennt mein System vrworld überhaupt nicht...
Private Nachricht senden Benutzer-Profile anzeigen
 
Mele
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 18.01.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.04.2010, 10:11     Titel:
  Antworten mit Zitat      
hallo
Ich hab gerade eine Antwort bei Mathworks gefunden.
Cell-Arrays können nicht in Matlab embedded Funktion benutzt werden.
sondern nur in Matlab function.

Gibt es dort die möglichkeit mehrere Eingänge zu definieren???
Ich habe nur einen hinbekommen.
Grüße
Mele
Private Nachricht senden Benutzer-Profile anzeigen
 
Zenon
Forum-Guru

Forum-Guru


Beiträge: 292
Anmeldedatum: 20.01.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.04.2010, 10:25     Titel:
  Antworten mit Zitat      
Laut Dokumentation kommt Matlab Fcn nur mit einem Input klar. Ich würde einfach auf das Cell Array verzichten.
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.