Why isn't there a bsxfun block in Simulink?
3 ビュー (過去 30 日間)
古いコメントを表示
Recently, I have found myself adding 1-line MATLAB Function Blocks to some models, of the form (though not necessarily always with @times):
function y=fcn(u, v)
y=bsxfun(@times, u, v);
I have made some attempts at implementing a general bsxfun block that would let me choose the function from a list, but I can't figure out how to pass the function handle from a mask into the MATLAB Function Block.
So why does this not exist (I have searched)?
Can anyone show me a way to construct the block I have described, without resorting to S-functions (we try to avoid them)?
Thanks!
0 件のコメント
回答 (1 件)
Ryan G
2013 年 6 月 25 日
編集済み: Ryan G
2013 年 6 月 25 日
Why doesn't the product block work? It can perform element by element operations. If you are using it for the singleton functionality, you could just copy the smaller array yourself to match the larger array using the selector block.
EDIT: This can also work for other functions supported by bsxfun.
4 件のコメント
Ryan G
2013 年 6 月 25 日
There is not anything that I could find capable of the automatic singleton expansion bsxfun performs. There are those workarounds mentioned which may be ok if you want to avoid s-functions. I would suggest putting in an enhancement request and the tech support team could give you a better answer if it's not technically possible (it may be possible just not created).
One last option you could try, but this won't stop you from having to use s-functions. Create a subsystem with the MATLAB function inside of it, then use the right-click generate s-function option. This will create a block for you that runs a mex-file. You can add this to a utilities library along with the rest of your project. This option may be considered a bit cleaner than MATLAB function blocks...
参考
カテゴリ
Help Center および File Exchange で Simulink Functions についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!