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!