Matlab 向向量添加像素

Matlab 向向量添加像素,matlab,vector,Matlab,Vector,我在matlab中有以下函数 当我运行它时,我只得到结果中的最后一个像素。如何得到所有结果的向量 谢谢。pixelsend+1=xi,j将右边的值添加到左边向量的最后一个元素之后 但是s=xy~=0.5或者类似的东西呢?当然有一个矢量化的解决方案。我对matlab不太熟悉,但每次迭代似乎都会覆盖像素 而不是用像素=席Xi,j替换每个迭代的像素值;沿着像素行+=席西,j是否存在任何东西;你能做什么 但是,如果像素不仅仅是一个值,而是一个数组或类似的数据结构,则需要为每次迭代更新索引,以便将该值与上

我在matlab中有以下函数

当我运行它时,我只得到结果中的最后一个像素。如何得到所有结果的向量

谢谢。

pixelsend+1=xi,j将右边的值添加到左边向量的最后一个元素之后


但是s=xy~=0.5或者类似的东西呢?当然有一个矢量化的解决方案。

我对matlab不太熟悉,但每次迭代似乎都会覆盖像素

而不是用像素=席Xi,j替换每个迭代的像素值;沿着像素行+=席西,j是否存在任何东西;你能做什么


但是,如果像素不仅仅是一个值,而是一个数组或类似的数据结构,则需要为每次迭代更新索引,以便将该值与上一次迭代分开存储,这样它就不会覆盖以前的值。

您需要保留索引:

function pixels = value(x, y)

pIndex = 1;

for i=1:length(y)
   for j=1:length(y)
      if y(i,j) ~= 0.5;
         pixels(pIndex) = x(i,j);
         pIndex = pIndex + 1;
      end
   end
end

pixels

end
但是,您应该对代码进行矢量化,使其更高效、更易于阅读,该函数可以替换为:

pixels = x(y ~= 0.5)

谢谢你的回答。这里的尽头是什么?你能解释一下如何使用它吗?是的,我知道s=xy~=0.5,但我只想与if语句进行比较……erm……end是向量的结尾,即在各自方向上最后一个元素的索引。帮助结束是有用的,也就是第三段。PixelStand + 1=席,J与像素= [像素席,j ]相同。不是覆盖像素,而是将其与每个新结果一起附加。如果从未赋值,为什么要编写带有返回值的函数?
pixels = x(y ~= 0.5)