matlab functionにおいて固定サイズになるはずの出力が可変サイズと認定される.
Show older comments
単一の入力とワークスペースの関数を用いて4つの出力を得ようとしています.
出力はそれぞれスカラーであるため固定サイズになるのですが可変サイズに推定され実行できません.
入力を手打ちしてmatlabエディターからは問題なく実行できます.
どうしたら固定行列と認識されるかを教えてほしいです.
以下コードです.
function [calc_P,calc_alfa,EffMax,nm]= map(Q, Eov, Qout, deltap, Dmax, Evmat)
%入力はQ以外はワークスペースから得たパラメータ
%近傍値探索
B = abs(Qout - Q);
i1 = min(B);
Q_column = find(B == i1);
Ann1 = Qout(Q_column);
%位置探索
r = Eov(:,Q_column,:);
Ejoin =[r(:,:,1),r(:,:,2),r(:,:,3),r(:,:,4)] ;
Ejoin = squeeze(Ejoin);
EffMax = max(Ejoin,[],'all');
dis = find(Ejoin==EffMax);
%3次元配列探索
calc_alfa_num = fix(dis/400);
calc_alfa_num = double(calc_alfa_num);
%行探索
Q_row = (dis-400*calc_alfa_num)+1;
Q_row = double(Q_row);
calc_alfa = 0.25*(calc_alfa_num+1);
calc_P = deltap(Q_row);
nm = Ann1/(Dmax*calc_alfa_num*Evmat(Q_row,Q_column,calc_alfa_num+1)) ;
end
エラーメッセージ
データ 'calc_P' は可変サイズの行列と推定されますが、モデル エクスプローラーのプロパティでは継承されたサイズまたは固定サイズと指定されています。[可変サイズ] チェック ボックスをオンにし、サイズのフィールドで上限を指定してください。
1 Comment
Atsushi Ueno
on 18 Dec 2021
方法1:配列サイズが判断できる形に変更する
方法2:可変サイズに設定する
Accepted Answer
More Answers (0)
Categories
Find more on Bartlett in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!