gpt4 book ai didi

Matlab特殊矩阵

转载 作者:太空宇宙 更新时间:2023-11-03 19:53:22 25 4
gpt4 key购买 nike

是否有生成此矩阵的 MATLAB 函数?

[1 2 3 4 5 6 7 ... n;
2 3 4 5 6 7 8 ... n+1;
3 4 5 6 7 8 9 ... n+2;
...;
n n+1 n+2 ... 2*n-1];

有名字吗?

谢谢。

最佳答案

是的,确实有那个矩阵的名字。它被称为 Hankel matrix .

使用 hankel MATLAB 中的函数:

out = hankel(1:n,n:2*n-1);

n=10 示例:

out = 

1 2 3 4 5 6 7 8 9 10
2 3 4 5 6 7 8 9 10 11
3 4 5 6 7 8 9 10 11 12
4 5 6 7 8 9 10 11 12 13
5 6 7 8 9 10 11 12 13 14
6 7 8 9 10 11 12 13 14 15
7 8 9 10 11 12 13 14 15 16
8 9 10 11 12 13 14 15 16 17
9 10 11 12 13 14 15 16 17 18
10 11 12 13 14 15 16 17 18 19

或者,您可能倾向于想要一个 bsxfun基于方法。这当然是可能的:

out = bsxfun(@plus, (1:n), (0:n-1).');

我之所以要向您展示这种方法,是因为在您的回答中,您使用了 repmat 生成两个矩阵以将其相加以创建正确的结果。您可以将两个 repmat 调用替换为 bsxfun,因为它在后台进行复制。

上述解决方案适用于没有隐式广播的旧版 MATLAB。对于最新版本的 MATLAB,您可以通过以下方式简单地执行上述操作:

out = (1:n) + (0:n-1).';

关于Matlab特殊矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33459454/

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