从给定向量创建下三角矩阵

发布于 2025-01-04 21:22:44 字数 319 浏览 1 评论 0原文

我的问题如下:我有一个向量

[3,4,5,6,7]

我想创建一个矩阵,

3 0 0 0 0   
3 4 0 0 0   
3 4 5 0 0   
3 4 5 6 0   
3 4 5 6 7 

但是,我不想使用 for 循环,因为我最终会得到大小问题。 我正在考虑使用 flipudfliprlhankeltoeplitz 函数,但找不到解决方案。

My problem is the following: I have a vector as

[3,4,5,6,7]

I want to create a matrix as

3 0 0 0 0   
3 4 0 0 0   
3 4 5 0 0   
3 4 5 6 0   
3 4 5 6 7 

However, I don't want to use for loops because of the problem of size that I will eventually get.
I was thinking about using flipud, fliprl, hankel and toeplitz functions but cannot find a solution.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

丿*梦醉红颜 2025-01-11 21:22:44

试试这个:

x = [3,4,5,6,7]
tril(ones(length(x),1)*x)

ans =

 3     0     0     0     0
 3     4     0     0     0
 3     4     5     0     0
 3     4     5     6     0
 3     4     5     6     7

Try this:

x = [3,4,5,6,7]
tril(ones(length(x),1)*x)

ans =

 3     0     0     0     0
 3     4     0     0     0
 3     4     5     0     0
 3     4     5     6     0
 3     4     5     6     7
荒人说梦 2025-01-11 21:22:44

如果 A 是你的向量,你可以做

M=repmat(A, length(A), 1) .* tril(ones(length(A),length(A)),0)

If A is your vector, you can do

M=repmat(A, length(A), 1) .* tril(ones(length(A),length(A)),0)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文