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

Variable size data in Embedded Matlab fcn.

 

fekal
Forum-Century

Forum-Century



Beiträge: 124
Anmeldedatum: 08.02.11
Wohnort: Mainz
Version: 2017b
     Beitrag Verfasst am: 09.08.2011, 19:33     Titel: Variable size data in Embedded Matlab fcn.
  Antworten mit Zitat      
Liebes Forum,

Hilfe: Verständnis Probleme! Ich habe eine Embedded Matlab function, in der aus der Eingangsmatrix (u) Zeilen gelöscht werden und dann wieder ausgegeben werden sollen (y).

Durch das löschen ändert sich die Dimension, was Matlab nicht gefällt.

Ich habe Den Ausgang auf "Variabel size" gestellt (tools-> edit ports) und hab dann y eine upper bound gegeben (einfach mal y<1000)
Die Meldung besagt aber, dass y immer noch keine upper bound zugewiesen bekommen hätte ? mmm da hab ich wohl was falsch gemacht.

Ich hab auch versucht über
Code:
cfg = coder.config('mex');
cfg.DynamicMemoryAllocation = 'AllVariableSizeArrays';

die Dynamic Memory Allocation freizuschalten, aber Embedded matlab erlaubt keine Dot Deklarationen. So hab ich diesen Punkt nicht weiter verfolgt.

Im Moment sieht es so aus
Code:
function y = earlgray(u,n)
%#eml
assert(y<1000);
   ...
%Löschen der Zeile und umschreiben. Hierbei entsteht "Ausgabe"
   ...
y = Ausgabe(y);
 

Ich hab die Anwendung von assert nicht so ganz verstanden, denn ich müsste doch eigentlich Dimensions Obergrenzen angeben also eher
Code:
assert(y<(1000,1000))
da u und y ja 2-D Matrix sind

Könntet Ihr mir helfen etwas Ordnung in mein Hirnchaos zu bringen Shocked . Tausend Dank
Euer fekal
Private Nachricht senden Benutzer-Profile anzeigen


fekal
Themenstarter

Forum-Century

Forum-Century



Beiträge: 124
Anmeldedatum: 08.02.11
Wohnort: Mainz
Version: 2017b
     Beitrag Verfasst am: 10.08.2011, 09:03     Titel:
  Antworten mit Zitat      
So ich hab es angepasst auf Variable Matrix Größe

Code:
function y = earlgray(u,n)

[spalten,zeilen] = size(u);
assert(all(size(y)==[spalten zeilen]));%y die Variable Größe zuordnen

y=u %Ausgabe
 


aber selbst bei einfachen "durchreichen" der Daten wird behauptet, ich hätte "y" keine "upper Bound" zugewiesen. JA aber was mach ich denn sonnst mit assert Question

Gürße fekal
Private Nachricht senden Benutzer-Profile anzeigen
 
fekal
Themenstarter

Forum-Century

Forum-Century



Beiträge: 124
Anmeldedatum: 08.02.11
Wohnort: Mainz
Version: 2017b
     Beitrag Verfasst am: 10.08.2011, 10:40     Titel:
  Antworten mit Zitat      
so kompliziert war das nun wirklich nicht:

einfach in "tools->edit ports Data" die Grenzen angeben.
Embarassed peinlich peinlich

Dann kann auch assert und emlmex weggelassen werde.
(die braucht man, wenn der input variabel sein soll, ich brauche aber nur eine variablen output. Für Hilfe zu Input siehe: Matlabhilfe->Defining Input Properties Programmatically in the MATLAB File [für embedded matlab function] )


Puhhh Gruß fekla. Ich hoffe es hat geholfen. Very Happy
Private Nachricht senden Benutzer-Profile anzeigen
 
fekal
Themenstarter

Forum-Century

Forum-Century



Beiträge: 124
Anmeldedatum: 08.02.11
Wohnort: Mainz
Version: 2017b
     Beitrag Verfasst am: 10.08.2011, 16:42     Titel:
  Antworten mit Zitat      
ich hab nun aber ein erneutes Problem als Anschluss:

Ich habe mehrere embedded matlab functions hintereinander geschaltet. Alle haben nun variable Ein- und Ausgänge, bis auf die Erste (nur variabler Ausgang) und die Letzten (nur variabler Eingang)

ich bekomme die Fehlermeldung :
Zitat:
nargs >= 1
ohne weiter Angaben.

narg bedeutet doch number of arguments. Richtig?

Hat einer eine Idee wann solch ein Fehler auftritt ?
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.