gpt4 book ai didi

matlab - 向量中的数据排列

转载 作者:行者123 更新时间:2023-12-04 02:28:21 27 4
gpt4 key购买 nike

我有以下向量:

enter image description here

下面是生成这个向量的代码:

A = [11 115 167 44 51 5 6];
B = [100 1 1 87];
C = [2000 625];
D = [81 623 45 48 6 14 429 456 94];
E = [89];
F = [44 846 998 2035 498 4 68 4 1 89];

G = {A,B,C,D,E,F};

[max_val, idx] = max(cellfun(@numel, G)); % Find max sizes of vectors

% Create vector with zeros filling open matrix space
LeftIndented = zeros(idx,max_val);
for k = 1:numel(G), LeftIndented(k,1:numel(G{k})) = G{k}; end

我想要一个向量:

  1. 右边的数据(左边的零)

enter image description here

  1. 居中数据(用零包围)

enter image description here

(注意,如果数据不能完全居中,向左偏移一个向量空间也是可以的)

我怎样才能做到这一点?

最佳答案

您可以用零填充每个向量:

A = [11 115 167 44 51 5 6];
B = [100 1 1 87];
C = [2000 625];
D = [81 623 45 48 6 14 429 456 94];
E = [89];
F = [44 846 998 2035 498 4 68 4 1 89];

G = {A,B,C,D,E,F};

[max_val, idx] = max(cellfun(@numel, G)); % Find max sizes of vectors

% Create vector with zeros filling open matrix space
LeftIndented = zeros(idx,max_val);
Centered = zeros(idx,max_val);
RightAligned = zeros(idx,max_val);
for k = 1:numel(G)
LeftIndented(k,1:numel(G{k})) = G{k};
l = length(G{k});
padding = max_val - l;
leftPadding = floor(padding / 2);
Centered(k, :) = [zeros(1, leftPadding), G{k}, zeros(1, padding - leftPadding)];
RightAligned(k, :) = [zeros(1, padding), G{k}];
end

这相当于

A = [11 115 167 44 51 5 6];
B = [100 1 1 87];
C = [2000 625];
D = [81 623 45 48 6 14 429 456 94];
E = [89];
F = [44 846 998 2035 498 4 68 4 1 89];

G = {A,B,C,D,E,F};

[max_val, idx] = max(cellfun(@numel, G)); % Find max sizes of vectors

% Create vector with zeros filling open matrix space
LeftIndented = zeros(idx,max_val);
Centered = zeros(idx,max_val);
RightAligned = zeros(idx,max_val);
for k = 1:numel(G)
LeftIndented(k,1:numel(G{k})) = G{k};
l = length(G{k});
padding = max_val - l;
leftPadding = floor(padding / 2);
Centered(k, 1 + leftPadding:leftPadding + l) = G{k};
RightAligned(k, 1 + padding:end) = G{k};
end

但在第二个代码中,向量的值被写入零向量中的正确位置。

关于matlab - 向量中的数据排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65823310/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com