向数组添加元素

Sim*_*ity -2 arrays matlab

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

s=[];
Run Code Online (Sandbox Code Playgroud)

比方说我们有以下循环:

for j=1:2
   for i=1:10
      if a(i,j)>0
      ...
      end
   end
end
Run Code Online (Sandbox Code Playgroud)

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

Eng*_*ero 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.
Run Code Online (Sandbox Code Playgroud)

更简洁:

S = A > 0;
Run Code Online (Sandbox Code Playgroud)

这指定您S要将值更改为1,对应于Awhere的值A > 0.

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

S = A(A > 0);
Run Code Online (Sandbox Code Playgroud)