我有一个从特定数字之间的linspace创建的向量,其尺寸为1 * 150。现在我想将上面创建的向量的每个元素与另一个维度为1 * 25的向量相乘。我的代码的详细信息如下所示
c_p = linspace(1,.3*pi,150);
c = c_p';
C = zeros([150,25]);
for i= 1:1:size(C,1)
wp= c(i);
for n= 1:25
c_wp(n) = cos(n*wp);
end
C(i,25)= c_wp;
end
向量实际上是长度为25的余弦的倍数,这里wp是维度1 * 150的第一个向量的元素。通过逻辑,我必须有150 * 25的输出,但相反给我“下标分配维度不匹配”。任何帮助将不胜感激,因为我是matlab的新手。
答案 0 :(得分:1)
要将行向量a
的每个元素与另一行向量b
的每个元素相乘,我们可以使用线性代数。我们转置a
使其成为列向量,然后使用矩阵乘法:
a.' * b
这样你甚至不需要for循环。