Matlab:如何使用for循环减少程序的这一部分,以及如何避免union函数的错误消息?

Matlab:如何使用for循环减少程序的这一部分,以及如何避免union函数的错误消息?,matlab,Matlab,如何使用for循环减少程序的这一部分,以及如何避免union函数的错误消息: V1、V2、…、V10是长度不同的向量(大小(Vj)不同于大小(Vk)) Zj是除Vj以外的所有Vk的联合体: Z1 = union(V2,V3,V4,V5,V6,V7,V8,V9,V10); Z2 = union(V1,V3,V4,V5,V6,V7,V8,V9,V10); Z3 = union(V1,V2,V4,V5,V6,V7,V8,V9,V10); Z4 = union(V1,V2,V3,V5,V6,V7,V8,

如何使用for循环减少程序的这一部分,以及如何避免union函数的错误消息:

V1、V2、…、V10是长度不同的向量(大小(Vj)不同于大小(Vk))

Zj是除Vj以外的所有Vk的联合体:

Z1 = union(V2,V3,V4,V5,V6,V7,V8,V9,V10);
Z2 = union(V1,V3,V4,V5,V6,V7,V8,V9,V10);
Z3 = union(V1,V2,V4,V5,V6,V7,V8,V9,V10);
Z4 = union(V1,V2,V3,V5,V6,V7,V8,V9,V10);
Z5 = union(V1,V2,V3,V4,V6,V7,V8,V9,V10);
Z6 = union(V1,V2,V3,V4,V5,V7,V8,V9,V10);
Z7 = union(V1,V2,V3,V4,V5,V6,V8,V9,V10);
Z8 = union(V1,V2,V3,V4,V5,V6,V7,V9,V10);
Z9 = union(V1,V2,V3,V4,V5,V6,V7,V8,V10);
Z10 = union(V1,V2,V3,V4,V5,V6,V7,V8,V9);

??? Error using ==> union
Too many input arguments.
您可以对不同大小的向量使用MATLAB,然后只使用普通的MATLAB:

,因此,您可以按任意顺序进行对的顺序并集,它将与一次完成所有事情的并集相同:

Z = cell(10,1);
for i=1:10
  for j = 1:10
      if(i~=j)
          Z{i} =  union(V{j}, Z{i});
      end
  end
end

寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:。@Schorsch:在我的问题中,有两个问题对其他读者很有帮助:1-如何在索引上使用for循环,2-如何对多个向量使用并集函数。
%a cell V
V = cell(10,1);

for i=1:10
    %dummy data of different sizes
    V{i} = rand(i,1);
    %your data 
    %V{i} = X(9, ismember(X(1,:), EE(i)));
end
Z = cell(10,1);
for i=1:10
  for j = 1:10
      if(i~=j)
          Z{i} =  union(V{j}, Z{i});
      end
  end
end