如果我有一个矩阵,我想将一个函数应用于矩阵的每一行。该函数具有三个可能的输出,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
答案 0 :(得分:0)
首先,第4行可能有错误。可能应该是i
而不是m
。
x(i) = function(matrix(i,:));
您可以在循环中计算a
,b
和c
:
a = sum(x>0);
b = sum(x==0);
c = sum(x==1);
如果您想区分x==1
和x>0
,可能会与sum(xor(x==1,x>0))
区分。
在将双值与0和1进行比较时,您可能还会遇到精度误差问题。