回 帖 发 新 帖 刷新版面

主题:如果对不同维的向量进行补零?

請寫一個函數 addGeneral.m,其功能是將兩個維度不同的向量或矩陣相加,用法如下: 
output = addGeneral(a, b) 
其中 a 和 b 都限定是一維的向量或是二維的矩陣,但他們的維度可能不同,因此無法直接進行一般的矩陣加法運算,而此函數會在執行加法之前,先將這兩個矩陣經由「補零」來擴展成維度相同的矩陣,然後再進行一般矩陣加法運算。例如,當 a = [1 2 3; 4 5 6],b = [5; 2],此時 addGeneral(a, b) 所傳回來的結果是 [6 2 3; 6 5 6]。另,此函數不支援純量展開(Scalar Expansion),所以 addGeneral([1, 1], 2)應該傳回 [3, 1]。 


题目中涉及到的这个补零,如果要用程序写出来,是什么样子的呢?
高手赐教!

回复列表 (共1个回复)

沙发


function xlh(A,B)
a=size(A);b=size(B);
if a==b
    C=A+B;
else   c=max(a(1),b(1));
       d=max(a(2),b(2));
       A1=zeros(c,d);
       B1=A1;
       A1(1:a(1),1:a(2))=A;
       B1(1:b(1),1:b(2))=B;
       C=A1+B1;
end
disp(C)
兄台  如果对答案满意的话请给两分

我来回复

您尚未登录,请登录后再回复。点此登录或注册