次元のサイズ不一致エラー
조회 수: 28 (최근 30일)
이전 댓글 표시
R2019bのSimulinkにて、正規分布で配列を生成し、ヒストグラムを作成して各Binの左edgeを1行目、Binのカウント数を2行目とするMATLAB Functionを作成したのですが、下記の通りエラーメッセージが表示されてしまいます。
- 次元のサイズ不一致エラー 2:1 が必要ですが実際のサイズは 16 です。 Error in 'BatReuseBusiness/NormalDistribution/MATLAB Function' (line 8) Array = [edges(1:end-1);N];
作成したコードは下記の通りです。
function Array = fcn(Quantity,mu,sigma,BinWid)
rng('shuffle')
pd = normrnd(mu,sigma,[1,Quantity])
[N,edges] = histcounts(pd,'BinWidth',BinWid)
Array = [edges(1:end-1);N];
テスト段階で同様のコード下記の通り.mファイル作成、実行した際は問題なく動作していたため、Simulinkにおける設定の問題かと考えているのですが、どなたか対処法をご教示頂けませんでしょうか。
Quantity = 10000
rng('shuffle')
pd = normrnd(10000,1000,[1,Quantity])
histogram(pd,'BinWidth',500)
[N,edges] = histcounts(pd,'BinWidth',500)
Array = [edges(1:end-1);N]
댓글 수: 0
채택된 답변
stozaki
2020년 1월 23일
편집: stozaki
2020년 1월 23일
問題は解決されましたでしょうか?
エラーの原因は恐らく、MATLAB Functionブロックの入出力の信号属性の設定が不足しているものと考えられます。今回の場合ですとArrayという出力変数の次元が可変であると思われますので、信号属性は可変とし、サイズには最大次元を設定します。
Simulinkでは、変数(信号) の属性を明示的に設定しないと、既定の属性で動くことになってしまいます。出力変数の次元は既定では固定次元となっており、エラーが発生したと思われます。
私の手元で、arai様同様のエラーを再現後、エラーが発生しないような設定を行ったモデルをR2019bで作成し添付しました。こちらでエラーは消えると思いますので、必要に応じてその他の信号属性を設定して頂けますでしょうか?
これらの設定に関するドキュメントは下記リンク先を参照してください。
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 配列と行列の数学에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!