Matrix manipulations

Hey all,
I'm having a bit of trouble calculating conditional proabbilities, say I have a matrix such as:
CgvB =
0 0
0 0
0 0
0 1
0 1
0 1
0 1
0 1
0 1
0 1
1 0
1 0
1 1
1 1
and I want to calculate the probability of having a 1 on the 2nd column given having a 1 on the first column in this case ists 2/14, but I'm using a script to automatically calculate all these probabilties. This is what I've started with: p=CgvB(length(CgvB(:,:)==1))/length(CgvB); this works but for empty matrices i get the error :Subscript indices must either be real positive integers or logicals. How can I perform these calculations without errors? Thanks for any help.

 采纳的回答

You can ensure that your array has the proper dimensions before doing the calculation
[sr,sc]=size(CgvB);
if (sr>0 & sc==2)
p=CgvB(length(CgvB(:,:)==1))/length(CgvB);
else
disp('The array must have at least one row and two columns');
end

2 个评论

Thanks for that. Can I also just say after else, that p = []? This is because I don't want to display anything but just continue with my calculations.
yes you can give p some value when the arrays doesn't have the proper dimensions, it can also be done at the start of the code, give p a default value, you can use Inf or NaN instead of []

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 NaNs 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by