计算函数的特定输出数

时间:2013-03-14 03:47:33

标签: matlab

如果我有一个矩阵,我想将一个函数应用于矩阵的每一行。该函数具有三个可能的输出,x = 0,x = 1或x> 1。有几件事情我遇到麻烦......

1)输出x = 1或x> 1的情况。 0是不同的,我不确定在编写脚本时如何区分这两者。

2)我的功能没有正确计算?我认为这可能是我如何设置循环的问题?

这就是我想出来的。从逻辑上讲,我觉得这应该有用(除了我所说的第一个问题的打嗝)

[m n] = size(matrix);
a = 0; b = 0; c = 0;
for i = 1 : m
x(i) = function(matrix(m,:));
if x > 0
a = a + 1;
end
if x == 0
b = b + 1;
end
if x == 1
c = c + 1;
end
end

1 个答案:

答案 0 :(得分:0)

首先,第4行可能有错误。可能应该是i而不是m

x(i) = function(matrix(i,:));

您可以在循环中计算abc

a = sum(x>0);
b = sum(x==0);
c = sum(x==1);

如果您想区分x==1x>0,可能会与sum(xor(x==1,x>0))区分。

在将双值与0和1进行比较时,您可能还会遇到精度误差问题。