MATLAB 中的矩阵运算

发布于 2024-10-31 03:30:48 字数 149 浏览 0 评论 0原文

我有一个简单的矩阵:[3 5 9 10]。我怎样才能将其转换为: <代码>[3 0; 5 3 ; 9 5 ; 10 9]

我尝试使用 hankel 等,但这不起作用。这需要是一个向量运算(没有 for/while 循环)。谢谢!

I have a simple matrix: [3 5 9 10]. How can I transform it to:
[3 0 ; 5 3 ; 9 5 ; 10 9]

I tried using hankel etc. but that did not work. This needs to be a vector operation (no for/while loop). Thanks!

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

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

发布评论

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

评论(2

孤城病女 2024-11-07 03:30:48

你很接近。您实际上想使用函数 TOEPLITZ 代替:

>> vec = [3 5 9 10];
>> toeplitz(vec,[vec(1) 0])

ans =

     3     0
     5     3
     9     5
    10     9

但是,因为您只矩阵中有 2 列,这要简单得多:

[vec; 0 vec(1:end-1)].'

You were close. You actually want to use the function TOEPLITZ instead:

>> vec = [3 5 9 10];
>> toeplitz(vec,[vec(1) 0])

ans =

     3     0
     5     3
     9     5
    10     9

However, since you only have 2 columns in your matrix, this is much simpler:

[vec; 0 vec(1:end-1)].'
亣腦蒛氧 2024-11-07 03:30:48
a = 1:4;

b = repmat(a',1,2);
b(:,2) = b(:,2)-1;
a = 1:4;

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