我在这篇文章的底部列出了一个函数,该函数应该返回一个矩阵具有相同大小的矩阵x
,其像素的成员资格y
= 1到1
以及0
的其他像素。
但是,当我运行该函数时,我没有得到如下预期结果(为什么会这样?):
>> x = [1 4 3; 6 4 3; 6 9 3; 2 4 3; 5 4 0; 5 3 1; 6 4 7];
>> y = [0 0 1; 1 1 0; 1 1 0; 0 1 1; 0.2 0.8 0.54; 1 1 1; 0 0 0];
>> pixel_val(x,y)
ans =
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
1 1 1
0 0 0
function c = pixel_val(x, y)
[ii,jj]=find(y==1);
x(ii,jj)=1;
[ii2,jj2] = find (y~=1);
x(ii2,jj2)=0;
c = x;
end
感谢。
答案 0 :(得分:1)
[ii, jj]
返回的索引find
并非您认为的那样。
你实际上不需要两个输出参数。试试这个
ii = find(y==1);
x(ii) = 1;
ii = find(y~=1);
x(ii) = 0;
或者,更好的是,使用逻辑索引而不是find
并在一行中执行:
x(y==1) = 1;
x(y~=1) = 0;