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!