【发布时间】:2023-03-19 11:59:01
【问题描述】:
有没有办法在 MATLAB 中组合两个向量:
mat = zeros(length(C),length(S));
for j=1:length(C)
mat(j,:)=C(j)*S;
end
使用类似于以下的普通 MATLAB 语法:
mat = C * S(1:length(S))
这给出了“内部矩阵维度必须一致错误”,因为它正在尝试执行正常的矩阵运算。这不是标准的线性代数运算,所以我不确定如何在 MATLAB 中正确表达它,但似乎不需要循环就可以了,这在 MATLAB 中太慢了。
【问题讨论】:
-
我认为你有一个错字。 "mat(1,:) = ..." 行将简单地覆盖第一行,对其余行不做任何事情。你的意思是说“mat(j,:) = ...”吗?
-
是的,你是对的,它应该是 mat(j,:)。对此感到抱歉。
-
没问题。我修复了它以避免任何进一步的混乱。 =)