我正在尝试像这样定义矢量C:
[0.67, 0.67, 0.67, 0.67, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02]
然后创建矩阵C_tmp,如:
[0.67, 0.67, 0.67, 0.67, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02],
[0.67, 0.67, 0.67, 0.67, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02],
[0.67, 0.67, 0.67, 0.67, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02],
[0.67, 0.67, 0.67, 0.67, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02]
但是我得到了#34; Submatrix错误地定义了"最后一行执行期间的错误。
C = zeros(1, X_SIZE);
C_tmp = zeros(T_SIZE, X_SIZE)
C(1:KSI) = 0.67;
C(KSI+1:$) = 0.02;
C_tmp(1:$) = C;
答案 0 :(得分:1)
你需要一个mxNc矩阵R,其中每一行都是向量C的de分量。
1)用C
创建一个对角矩阵 d = diag (c) (NcxNc matrix)
2)创建mxNc
的矩阵o = ones (m, Nc) (mxNc matrix)
3)创建矩阵 R = o * d(mxNc矩阵)
答案 1 :(得分:1)
如果您关心速度,请避免致电repmat
并使用Kronecker产品.*.
C_tmp = ones(T_SIZE, 1) .*. C;
答案 2 :(得分:0)
好的我找到了解决方案 - repmat功能完成了这项工作。
C_tmp = repmat(C, T_SIZE, 1);