我有一个向量,我知道它将由值 100、200 和 400 组成。这些值不会混淆,但会按顺序排列,例如
target = [100 100 100 100 200 200 400 400 400];
我想将这个向量分成三个向量,每个向量包含该类型的所有值。
A = [100 100 100 100];
B = [200 200];
C = [400 400 400];
target的长度会不时变化,100、200、400的比例也会不时变化。
如何以简单的方式进行拆分?
我自己的解决方案看起来像这样,但我在想还有另一种需要更少代码的方法。
columns = size(target, 2);
A = [];
B = [];
C = [];
% Splitting target into groups
for j = 1:columns
if target(1, j) == 100
A = [A, 100];
elseif target(1, j) == 200
B = [B, 200];
elseif target(1,j) == 400
C = [C, 400];
end
end
最佳答案
更简单的东西:
target=[100 100 100 100 200 200 400 400 400];
A = target(target==100)
B = target(target==200)
C = target(target==400)
工作原理:target==x
返回大小等于 target
的逻辑数组。然后您可以使用该逻辑数组来索引 target
。
关于arrays - 根据其内容将向量拆分为多个向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30919693/