向数组添加元素

时间:2013-06-17 14:31:02

标签: arrays matlab

假设我有一个空数组,如下所示:

s=[];

比方说我们有以下循环:

for j=1:2
   for i=1:10
      if a(i,j)>0
      ...
      end
   end
end

我希望将元素添加到...,而不是s。你是如何在MatLab中做到的?

2 个答案:

答案 0 :(得分:6)

我建议你完全避免循环。它们在MATLAB中很慢。

我们假设您要将S(i,j)中的所有值设置为1,与A(i,j) > 0对应。你可以这样做:

S = zeros(size(A));    % always a good idea to initialize your array
S(A > 0) = 1;          % and done.

更简洁:

S = A > 0;

这表明您要将S的值更改为1,对应A A > 0的值{。}}。

如果您想将S的值设置为A的相应值,那么您只需使用:

S = A(A > 0);

答案 1 :(得分:1)

跟踪另一个索引,只需添加元素:

idx = 1
for j=1:2
    for i=1:10
        if a(i,j)>0
            s(idx) = a(i,j)
            idx = idx + 1
        end
    end
end

虽然针对您的特定问题,您可以写一下

a(a>0)