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

Format von Zahlen verursacht Fehler!

 

Waldemar
Forum-Century

Forum-Century


Beiträge: 100
Anmeldedatum: 14.10.11
Wohnort: Neuss
Version: R2011b
     Beitrag Verfasst am: 20.02.2013, 22:52     Titel: Format von Zahlen verursacht Fehler!
  Antworten mit Zitat      
Hallo,

In einem Simulink-Modell habe ich eine eingebettete Funktion in der folgender Code-'Teil' Fehler bereitet:

Code:

.
.
.
elseif Abtastintervall>=QuasiSollwertsprung+14*x && Abtastintervall<QuasiSollwertsprung+16*x;
    Amplitude1 = 3;
    FestgehaltenderWert1 = QuasiSollwertsprung+14*x-1;
   
    CA50soll = Amplitude1*sind(Winkel1)+CA50soll_time(FestgehaltenderWert1,1);
.
.
.


Der erste Fehler lautete:
Code:
Runtime error: Expected an integer value, found non-integer variable FestgehaltenderWert1 with value 1019.
.

Im Command Window konnte ich dann sehen, dass die Variable 'FestgehaltenderWert1' folgenden Wert zugeteilt bekommt:

Code:
FestgehaltenderWert1 =1.0190e+003


Was den Fehler erklärt, da ein Vektoreintrag ausgelesen werden soll und dafür ganze Zahlen benötigt werden, aber nicht wieso dies überhaupt so dargestellt wird. Naja, jedenfalls dachte ich, den Fehler wie folgt lösen zu können:

Code:

.
.
.
elseif Abtastintervall>=QuasiSollwertsprung+14*x && Abtastintervall<QuasiSollwertsprung+16*x;

    %#eml
    eml.extrinsic('sprintf');
    Amplitude1 = 3;
    FestgehaltenderWert1 = QuasiSollwertsprung+14*x-1;
    FestgehaltenderWert1opt = sprintf('%g',FestgehaltenderWert1);
    CA50soll = Amplitude1*sind(Winkel1)+CA50soll_time(FestgehaltenderWert1opt,1);  
.
.
.


Allerdings stehe ich aktuell bei folgendem Fehler:
Code:
mxArray indices are not supported.  Consider first storing the index expression into a non-mxarray temporary.
Function 'CA50_Vari' (#129.3840.3863), line 123, column 55:
"FestgehaltenderWert1opt"
 



Was will Matlab/Simulink von mir?


Um Hilfe wäre ich dankbar.

MfG, Waldemar
_________________

Im "ich brauch Hilfe"-Status
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: 21.02.2013, 01:24     Titel:
  Antworten mit Zitat      
Hallo,

also eigentlich ist meine Frage, wie kann ich Matlab/Simulink sagen, dass der Wert, der an 'FestgehaltenderWert1' übermittlet wird, einfach '1019' sein soll und nicht in der Exponentialform?

Hat dazu jemad eine Idee?

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: 21.02.2013, 07:28     Titel:
  Antworten mit Zitat      
Also 1019 und 1.0190e+003 ist genau dasselbe. Die wissenschaftliche Form wird bestimmt benutzt, weil es (standardmäßig) eine double Zahl/Variable ist. Wenn x eine double Zahl ist, dann wird/muss ja eigentlich das Ergebnis auch double sein. Er will aber anscheinend Integer. Vielleicht hilft sowas

Code:

FestgehaltenderWert1 = int32(QuasiSollwertsprung+14*x-1);
 


PS:

Code:

funktioniert vermutlich nicht, weil das Ergebnis ein String ist. Wenn du es als Zahl vernwenden willst, dann hast du ein Array mit den ASCII codes.
Kannst es in Matlab console Testen:
Code:

x = sprintf('g%',20000)
x =

       20000

double(x)

ans =

    50    48    48    48    48
 
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: 21.02.2013, 14:55     Titel:
  Antworten mit Zitat      
Hallo knilumis_baltaM,

besten Dank. Hast in beiden Punkten vollkommen recht.

Vielen Dank für deine Hilfe.

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.