gpt4 book ai didi

Matlab:如何重新排序(重新组织)矩阵

转载 作者:行者123 更新时间:2023-12-02 07:04:16 24 4
gpt4 key购买 nike

我有一个随机列矩阵:

r = rand(1,300)';

我想重新排序它,而不是按 1,2,3,...,300 的顺序排列元素我将有元素 1,11,21,31,...,291,2,12,22,32,...,292,3,13,33,...293,...,300.

换句话说,我想从 1 开始获取每 10 个值并按该顺序排列它们,然后对每 10 个值的 2 执行相同的操作。我知道一种方法是:

n = 10;
r = [r(1:n:numel(r)); r(2:n:numel(r)); r(3:n:numel(r));...;r(10:n:numel(r))]; % Skipped 4-9 in this example

但显然,多次执行此操作非常麻烦。有没有更高效的方法?

循环应该很容易,但我似乎没有正确执行(我可以理解为什么这可能不起作用,但我无法纠正它)。

(这是我尝试过的:)

n = 10;
for i = 1:10
a = [r(i:n:numel(r))];
end

非常感谢任何建议或帮助。

最佳答案

你可以这样做:

r = reshape(reshape(r, 10, 30)', 300, 1)

编辑:

正如 @LuisMendo 在评论中指出的,使用 .'' 转置矩阵更安全,因为如果矩阵很复杂,可能会引入复杂的共轭。那么,这样做会更安全:

r = reshape(reshape(r, 10, 30).', 300, 1)

关于Matlab:如何重新排序(重新组织)矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22993764/

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