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

Workaround für varibale Arraylängen bei Embedded Matlab ?

 

amin
Forum-Anfänger

Forum-Anfänger


Beiträge: 45
Anmeldedatum: 11.05.09
Wohnort: Karlsruhe
Version: R2009b
     Beitrag Verfasst am: 02.06.2009, 10:51     Titel: Workaround für varibale Arraylängen bei Embedded Matlab ?
  Antworten mit Zitat      
Hallo,

ich möchte mit Embedded Matlab aus einem M-File ersteinmal C-Code generieren um diesen später in eine S-Function zu packen.

Jetzt habe ich schon aus diversen Webinars gelernt, dass ich die Arraygrösse gernerell auf das potentielle Maximum definieren muss. Das funktioniert auch soweit.

Mein Problem ist jetzt aber, dass ich bei Funktionen wie der Standartabweichung oder dem Mittelwert und vielen anderen Funktionen, ein flasches Ergebnis bekomme, wenn ich das Array mit Nullen aufgefüllt ist.

Jetzt dachte ich mir, ist ja kein Problem. Da übergebe ich mit dem Array einfach auch die Arraygrösse und löse das folgendermasen:
Code:
function output = mean_var(input_array,size)%#eml

output = mean(input_array(1:size));


Jedoch funktioniert das auch nicht. Das kann ich jedoch nicht ganz nachvollziehen, da hier eigentlich kein Array mit einer Variablen Länge erstellt wird.

Wie löst Ihr soetwas ? Muss ich jetzt jede Funktion aus Matlab selbst neu schreiben, oder gibt´s da einen Workaround ?

build_mean_var.m
 Beschreibung:
Build File für mean_var.m

Download
 Dateiname:  build_mean_var.m
 Dateigröße:  74 Bytes
 Heruntergeladen:  449 mal
mean_var.m
 Beschreibung:
Beispielfile aus dem oben gezeigtem Code

Download
 Dateiname:  mean_var.m
 Dateigröße:  88 Bytes
 Heruntergeladen:  538 mal


Zuletzt bearbeitet von amin am 02.06.2009, 14:49, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen


amin
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 45
Anmeldedatum: 11.05.09
Wohnort: Karlsruhe
Version: R2009b
     Beitrag Verfasst am: 02.06.2009, 11:18     Titel:
  Antworten mit Zitat      
Hallo,

ich habe nochmal in ein Webinar reingeschaut:
Algorithm Design and Code Generation with Embedded MATLAB

Hier wird in Minute 42 ein vergleichbares Problem gezeigt, und er löst es tatsächlich mit Neuschreiben der Funktionen. Bei ihm sind´s zwar einfach Minima und Maxima Suchen. Aber das kann´s ja dennoch nicht sein. Denn es gibt ja auch erheblich kompliziertere Funktionen.
Wenn man am Ende ohnehin alles neu schreiben muss, dann kann man es im Prinzip auch gleich in C schreiben.

Wie löst ihr denn dieses Problem ?
Private Nachricht senden Benutzer-Profile anzeigen
 
amin
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 45
Anmeldedatum: 11.05.09
Wohnort: Karlsruhe
Version: R2009b
     Beitrag Verfasst am: 04.06.2009, 13:57     Titel:
  Antworten mit Zitat      
Da es offensichtlich keine andere Lösung gibt, habe ich nun alle verwendeten Matlab Funktionen selbst neu geschrieben.
So geht´s zumindest.

Dennoch denke ich das es dafür eigentlich eine bessere Lösung geben sollte.
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.