Simulink Embeded Coderで出力された関数の引数のデータ型をSingle型にすると正しく出力されない
2 次查看(过去 30 天)
显示 更早的评论
Simulink Embeded Coderにて2d lookuptableのブロックを出力しdllファイルの関数としてvb.net環境下で利用しようとしています。
この関数の引数をsingle型にすると正しく出力されず関数の戻り値はゼロになってしまいます。
2d lookuptableのブレークポイント値の型をsingleにして型を合わせていますが、singleの引数として
関数宣言し、single型の変数を引数として計算させると戻り値がゼロになってしまいます。
型を合わせずdouble型として関数宣言するとうまくいきます。
何故single型を使うとうまくいかなくなるのでしょうか?
3 个评论
Atsushi Ueno
2022-12-18
(´・ω・`) ゼンゼン ワカンナイ...
>visual basicではreal_T型が存在しないので型指定することができないので
MATLABにもreal_T型はありません。下記説明によればreal_T は double に対する typedef です。
>これらを踏まえると値のレンジ縮小へキャストする型指定に対しては注意が必要で、型指定をしないか値のレンジ拡大側へのキャストにする、が結論になりますでしょうか?
動きを確認してませんし、目ぼしいドキュメントにも辿り着けないので、何とも言えないです。
単精度浮動小数点型 (Single) (Visual Basic) を見ると、MATLABとVisual BasicのSingle型は同じに見えますが、メモリ配置が合致していないとか、同じアドレスを見れてないとか、何か違いが生じるのかもしれません。
>Single の既定値は 0 です
との事なので、アクセスしたつもりが実際にはアクセス出来ておらず、規定値の0のままになっているのではないでしょうか?
回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!