我有下面的矩阵C,我想在MATLAB中重建:
在这种情况下,C是一个N = 3 × N = 3的矩阵,但我想为任何大小的N × N生成C。
我在1到20的区间内随机创建c的随机值,使用:
N = 3
c = randi([1,20],N+1,1,"double");
我最初认为我可以使用嵌套的for循环,如下所示:
function C = carray(c,N)
C = zeros(N,N)
for i =1:1:N
for j=1:1:N
if isdiag(C(i,j))
C(i,j) = c(i) + c(i+1)
end
end
end
end
然而,这并没有产生预期的结果。我必须使用diag()
或spdiag()
来执行此操作吗?
1条答案
按热度按时间c7rzv4ha1#
如果你愿意,你可以在一个表达式中完成这一点,只需在相邻元素之和的向量上使用
diag
,就像这样: