相关疑难解决方法(0)

如何在MATLAB中基于矢量创建三角矩阵?

假设我有一个像这样的矢量:

A = [101:105]
Run Code Online (Sandbox Code Playgroud)

这是真的:

[ 101, 102, 103, 104, 105 ]
Run Code Online (Sandbox Code Playgroud)

我只想使用矢量/矩阵函数和运算符来生成矩阵:

101 102 103 104 105
102 103 104 105 0
103 104 105 0   0
104 105 0   0   0
105 0   0   0   0
Run Code Online (Sandbox Code Playgroud)

或以下矩阵:

101 102 103 104 105
0   101 102 103 104
0   0   101 102 103
0   0   0   101 102
0   0   0   0   101
Run Code Online (Sandbox Code Playgroud)

任何人的想法?

(我在MATLAB中非常新手,但我一直背负着这些东西...)

matlab matrix triangular

11
推荐指数
1
解决办法
1万
查看次数

如何创建对称矩阵,其中每行/列是已知向量的子集

我有一个7*1的矢量a = (1:7).'.我想A从矢量形成一个大小为4*4 的矩阵,使得形成矩阵的反对角线a的元素如下:aA

A = [1 2 3 4;
     2 3 4 5;
     3 4 5 6;
     4 5 6 7]
Run Code Online (Sandbox Code Playgroud)

我希望这适用于一般a,而不仅仅是元素是连续整数.

我感谢任何帮助.

matlab matrix symmetry diagonal

3
推荐指数
2
解决办法
249
查看次数

定期从矢量构造矩阵

我有一个b包含30个条目的向量.

我想避免使用for循环来构造这样的矩阵:

在此输入图像描述

其中b_ii向量的第n个条目b.

例如,定义向量

b = [2 6 -7 3 1 -4 -1  1 11  8 -4  9  2  0  2 -1  0  4  4  4  2 -4  2  5  1 3  2 -1  1 -2]
Run Code Online (Sandbox Code Playgroud)

我尝试使用for循环的地方是:

A = zeros(5,5);
for i = 1:5
    A(i) = b(i+5);
    A(i+5) = b(i+6);
    A(i+10) = b(i+7);
    A(i+15) = b(i+8);
    A(i+20) = b(i+9);
end
Run Code Online (Sandbox Code Playgroud)

结果是

在此输入图像描述

有没有更快更通用的方法来生成这个矩阵?

matlab matrix vectorization

1
推荐指数
1
解决办法
72
查看次数

标签 统计

matlab ×3

matrix ×3

diagonal ×1

symmetry ×1

triangular ×1

vectorization ×1