" bsxfun(@rdivide..." Explain Use in Code

14 views (last 30 days)
Katarina Vuckovic
Katarina Vuckovic 2020年2月4日
Edited: Adam 2020年2月4日
“请在此链接的评论部分中查看我的问题:

答案(1)

Adam
Adam 2020年2月4日
Edited:Adam 2020年2月4日
rgbh_e = bsxfun(@rdivide,rgbh_e,rgbh_e(4,:));
divides rgbh_e by by the 4th row of rgbh_e, on a per row basis - i.e. each element of each row is divided by the element in the same column of the 4th row.
理解这一点的最佳方法是创建一个小示例并在命令行上进行测试以查看其在做什么。我不知道RGBH_E是什么,但是例如:
>> a = rand(4,5)
a =
1至4
0.814723686393179 0.63235924622541 0.957506835434298 0.957166948242946
0.905791937075619 0.09754040404049994095 0.9648888535199277 0.485375648722841
0.126986816293506 0.278498218867048 0.157613081677548 0.8002804688888
0.913375856139019 0.546881519204984 0.970592781760616 0.141886338627215
Column5
0.421761282626275
0.915735525189067
0.792207329559554
0.959492426392903
>>
>>
>>
>> bsxfun(@rdivide,a,a(4,:))
ans =
1至4
0.891991704091174 1.15630026617957 0.986517573000511 6.74601203684419
0.9916968255935 0.178357471543757 0.994122925011876 3.42087655104056
0.139030187233434 0.50924781527068 0.16238475001478 5.64029262176829
1 1 1 1
Column5
0.439567078410234
0.954395782603168
0.825652509356184
1
在这里,您可以看到每个列除以该列的第4行值。这是在最近版本中通过不需要BSXFUN的隐式扩展实现的。在这种情况下,它有效地将(4,5)矩阵除以A(1,5)数组
a ./ a(4,:)
等效。
在许多情况下,使用更简单的示例调查命令行上的语法可以帮助阐明正在发生的事情。
在您提到的提交中,我猜这是一个规范化步骤,迫使值在正确的范围(0-1)中,并且不会被删除1以上的标准步骤。

标签

社区寻宝

在Matlab Central中找到宝藏,发现社区如何为您提供帮助!

Start Hunting!