【发布时间】:2014-04-19 19:13:46
【问题描述】:
这是一个问题: 编写一个使用 diag 命令生成 n × n 循环矩阵的 MATLAB 程序:给定向量 v = (v1 v2 v3 ....vn)。循环矩阵示例:
A = [1 2 3 4 5;
5 1 2 3 4;
4 5 1 2 3;
3 4 5 1 2;
2 3 4 5 1]
注意连续行的环绕模式。
使用diag command in MATLAB。
(这是我开始的,我在使用diag 命令构造矩阵时遇到了麻烦。请帮忙)。
n = length(v);
a = zeros(n);
for i = 1:n
【问题讨论】:
-
我认为@Divakar 已经确定了
diag的方法,但是toeplitz使它成为一个单线(toeplitz(circshift(flipud(v(:)),1),v)),虽然我不认为你会从你的教授为那个答案。 :D -
@chappjc 是的,我们都必须通过“Prof-ways”!
-
顺便说一句:这个矩阵是内置的:
gallery('circul',1:5)chappjc 很接近,因为实现实际上使用了toeplitz。 -
@knedlsepp, 只是为了提供完整的信息,实际的 doe 在函数
circul()(输入edit circul.m)中。
标签: matlab matrix linear-algebra