2013-02-08 134 views
0

我已经写了如下函数来查找像素是否属于matlab中的图像。检查像素是否属于图像

在开始的时候,我想测试它仿佛在一组号码属于像下面这样的载体:

function traverse_pixels(img) 
for i:1:length(img) 
    c(i) = img(i) 
end 

但是,当我运行例如下面的命令,我得到的错误显示在结尾处:

>> A = [ 34 565 456 535 34 54 5 5 4532 434 2345 234 32332434]; 
>> traverse_pixels(A); 
??? Error: File: traverse_pixels.m Line: 2 Column: 6 
Unexpected MATLAB operator. 

这是为什么?我该如何解决这个问题?

谢谢。

+1

注意,要测试相等你还需要输入'C(I)'你需要使用'=='而不是'='。现在你只需要给局部变量'c'分配一些东西。 –

回答

2

。在你的for循环,它应该的头一个语法错误是:

for i = 1:length(img) 

此外,为了检查一个数组包含你可以使用一个特定的值:

A = [1 2 3] 
if sum(A==2)>0 
    disp('there is at least one 2 in A') 
end 

由于不包含for循环,因此这应该更快。

+1

而不是'sum(x == k)> 0'我会推荐使用'any(x == k)' –

+0

我不知道这个解决方案,那更漂亮了。 –

2

对于i = 1:长度(图像)

傻错误,不,它是=