【问题标题】:How do i find a matrix of 150*25 from two vectors such that each vector elements multiply with each element of another vector of dim 1*150 &1*25?如何从两个向量中找到 150*25 的矩阵,使得每个向量元素与另一个暗淡 1*150 &1*25 向量的每个元素相乘?
【发布时间】:2015-04-11 01:38:26
【问题描述】:

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

【问题讨论】:

    标签: matlab matrix


    【解决方案1】:

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

    a.' * b
    

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

    【讨论】:

    • 也称为两个向量的“外”、“二元”或“张量积”。 :-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多