如何从两个向量中找到150 * 25的矩阵,使得每个向量元素与另一个向量为1 * 150& 1 * 25的另一个向量的每个元素相乘?

时间:2015-04-11 01:38:26

标签: matlab matrix

我有一个从特定数字之间的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的新手。

1 个答案:

答案 0 :(得分:1)

要将行向量a的每个元素与另一行向量b的每个元素相乘,我们可以使用线性代数。我们转置a使其成为列向量,然后使用矩阵乘法:

a.' * b

这样你甚至不需要for循环。