どうすればpreci​sionを定数で指定​してfreadを実行​することができますか​?

1 visualizzazione (ultimi 30 giorni)
Haji Keigo
Haji Keigo il 30 Ott 2019
Commentato: Haji Keigo il 31 Ott 2019
MATLAB Coderを使ってコードをC++に変換したいと思っています.
その途中でエラーが出て,「コード内のfreadへの入力が定数ではない」という旨が表示されました.
おそらく,数値の読み取り方の指定であるprecisionが問題だと考えています.
コードでは,
PointCloudData = fread(fp, [numFields npoints], format);
と入力しています.このformatは'*float32'なのですが,これをどうすれば定数として入力できるでしょうか.
自分で調べてclassdefのページ(https://jp.mathworks.com/help/matlab/matlab_oop/properties-with-constant-values.html)も見てみましたが,使い方がよくわかりませんでした.
よろしくお願いいたします.

Risposta accettata

Kazuya
Kazuya il 30 Ott 2019
PointCloudData = fread(fp, [numFields npoints], format);
PointCloudData = fread(fp, [numFields npoints], '*float32');
format 部分を直書きで書いてやると通るかもしれません。ランタイムに変わりうる変数 format を使うと NG という意味のエラーかと思います。
  1 Commento
Haji Keigo
Haji Keigo il 31 Ott 2019
ご回答ありがとうございました.
直書きに変更して試してみましたが,また別のエラーが出てしまいました.
それ以外の箇所でも変換にあたってエラーや,サポートされていない関数が多々あることを考えて,MATLAB Coderでの変換を諦めて自力で書き換えた方がよいという結論にいたりました.
ありがとうございました.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su コンピューター ビジョンと Simulink in Help Center e File Exchange

Prodotti

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!