次元のサイズ不一致エラー
69 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
kouji arai
el 23 de En. de 2020
Comentada: kouji arai
el 24 de En. de 2020
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 comentarios
Respuesta aceptada
stozaki
el 23 de En. de 2020
Editada: stozaki
el 23 de En. de 2020
問題は解決されましたでしょうか?
エラーの原因は恐らく、MATLAB Functionブロックの入出力の信号属性の設定が不足しているものと考えられます。今回の場合ですとArrayという出力変数の次元が可変であると思われますので、信号属性は可変とし、サイズには最大次元を設定します。
Simulinkでは、変数(信号) の属性を明示的に設定しないと、既定の属性で動くことになってしまいます。出力変数の次元は既定では固定次元となっており、エラーが発生したと思われます。
私の手元で、arai様同様のエラーを再現後、エラーが発生しないような設定を行ったモデルをR2019bで作成し添付しました。こちらでエラーは消えると思いますので、必要に応じてその他の信号属性を設定して頂けますでしょうか?
これらの設定に関するドキュメントは下記リンク先を参照してください。
Más respuestas (0)
Ver también
Categorías
Más información sobre Sources en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!