zerosを使用して型変換すると、メモリ割り当てエラーが発生する。
6 ビュー (過去 30 日間)
古いコメントを表示
matlab functionにて、リングバッファモデルを作成しています。
入力と出力はinport,outportを使用しています。モデル全体の画像を載せます。

コードは以下のように書きました。
function y = fcn(a,b,c,d)
assert(b<100);
persistent A
if isempty(A)
A = zeros(b,1);
end
if c
A = circshift(A,1);
A(1,1) = 0;
else
if d
A = circshift(A,1);
A(1,1) = a;
end
end
y = A; %出力
end
上記のコードを用い、再生ボタンを押したところ、無事に動作しました。
その後、出力の型をdouble型ではなくuint16型にしたいと考え、
A = zeros(b,1,'uint16');としたところ、以下のエラーが発生しました。
シミュレーションの実行中にエラーが発生したため、シミュレーションを終了しました
原因:
メモリ割り当てエラー
uint16に変換しただけであるのに、メモリ割り当てエラーが発生したので驚いています。
どのようにコードを修正すれば、メモリ割り当てエラーが発生せずに使用できるのでしょうか。
回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Convert Image Type についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!