如何在Matlab中更清晰地编写?
我知道必须有一个更干净更优雅的方法来做到这一点。我有一个范围为[0,1]的数字数组,希望检查哪些大于阈值。我记得有一些语法可以很好地做到这一点。在python中,我会使用类似lambda函数的东西如何在Matlab中更清晰地编写?,matlab,lambda,Matlab,Lambda,我知道必须有一个更干净更优雅的方法来做到这一点。我有一个范围为[0,1]的数字数组,希望检查哪些大于阈值。我记得有一些语法可以很好地做到这一点。在python中,我会使用类似lambda函数的东西 p = sigmoid(dot(theta,X)); for i =1:size(p) if(p(i)>=0.5) p(i)=1 else p(i)=0 end end 您可以一次对整个阵列进行操作: p(p >= 0.5) = 1; p(p
p = sigmoid(dot(theta,X));
for i =1:size(p)
if(p(i)>=0.5)
p(i)=1
else
p(i)=0
end
end
您可以一次对整个阵列进行操作:
p(p >= 0.5) = 1;
p(p < 0.5) = 0;
您可以一次对整个阵列进行操作:
p(p >= 0.5) = 1;
p(p < 0.5) = 0;
你可以简单地说p=p>=0.5。布尔运算符处理数组,并返回由布尔值组成的逻辑数组。您可以简单地说p=p>=0.5。布尔运算符在数组上工作,并返回由布尔值组成的逻辑数组。mtrw走在正确的轨道上,但它变得更短:
p = (p >= 0.5);
mtrw在正确的轨道上,但它变得更短:
p = (p >= 0.5);
只是为了多样化。您还可以执行以下操作:
p = floor(p + 0.5);
这也适用于[0,1]范围内的其他阈值。仅针对多样性。您还可以执行以下操作:
p = floor(p + 0.5);
这也适用于[0,1]范围内的其他阈值。我觉得自己很笨+1.在常规Python中,您可能会对p中的k执行[intk>=0.5]。事实上,由于OP无论如何都在覆盖p,因此他最好避免sigmoid调用的开销,只执行p=dotheta,X>=0.0;我觉得自己很笨+1.在常规Python中,您可能会对p中的k执行[intk>=0.5]。事实上,由于OP无论如何都在覆盖p,因此他最好避免sigmoid调用的开销,只执行p=dotheta,X>=0.0;