Info
此问题已关闭。 请重新打开它进行编辑或回答。
Creating a matrix based on information in a vector and another matrix
1 次查看(过去 30 天)
显示 更早的评论
Suppose I have a vector of success probabilities, for example:
p = [0.5,0.25,0.75]
I also have a matrix of outcomes, o, which has the same number of columns as p, containing "0's" (failure) and "1's" (success):
o = [1,0,1
0,0,0]
What I wish to obtain is the following matrix:
m = [p(1,1), 1-p(1,2), p(1,3)
1-p(1,1), 1-p(1,2), 1-p(1,3)]
So, to clarify, 1's in o result in a value equal to the corresponding value in p, while 0's in o lead to 1 minus the corresponding value in p.
What is the most efficient way to obtain m?
2 个评论
回答(1 个)
Andrei Bobrov
2017-7-5
编辑:Andrei Bobrov
2017-7-5
For MARLAB >= R2016b
out = ~o - p;
out(o>0) = -out(o>0);
MATLAB <= R2016a
out = bsxfun(@minus,~o,p);
out = out.*(1-o*2);
4 个评论
此问题已关闭。
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!