Matlab矩阵运算问题 matlab编写m文件求两矩阵的乘法 有问题 请高手指点

matlab\u600e\u4e48\u6837\u5bf9\u4e24\u4e2a\u77e9\u9635\u8fdb\u884c\u4e0e\u8fd0\u7b97\u548c\u975e\u8fd0\u7b97

+
\u52a0

\u2014
\u51cf

*
\u77e9\u9635\u4e58\u6cd5

.*
\u6570\u7ec4\u4e58\u6cd5

^
\u77e9\u9635\u5e42

.^
\u6570\u7ec4\u5e42

\
\u77e9\u9635\u5de6\u9664\u6216\u53cd\u659c\u6760

/
\u77e9\u9635\u53f3\u9664\u6216\u659c\u6760

.\
\u6570\u7ec4\u5de6\u9664

./
\u6570\u7ec4\u53f3\u9664

:
\u5192\u53f7

( )
\u5706\u62ec\u53f7

[ ]
\u65b9\u62ec\u53f7

.
\u5c0f\u6570\u70b9

..
\u7236\u76ee\u5f55

\u2026
\u7ee7\u7eed

,
\u9017\u53f7

;
\u5206\u53f7

%
\u6ce8\u91ca

!
\u611f\u53f9\u53f7

\u2018
\u8f6c\u7f6e\u6216\u5f15\u7528

=
\u8d4b\u503c

= =
\u76f8\u7b49

~=
\u4e0d\u76f8\u7b49

\uff0c=
\u5173\u7cfb\u64cd\u4f5c\u7b26

&
\u903b\u8f91\u4e0e

|
\u903b\u8f91\u6216

~
\u903b\u8f91\u975e

\u5f88\u9ad8\u5174\u4e3a\u60a8\u89e3\u7b54\u8fd9\u4e2a\u95ee\u9898\uff0cmatlab\u4e2d\u4e24\u4e2a\u77e9\u9635\u662f\u53ef\u4ee5\u76f4\u63a5\u76f8\u4e58\u7684\uff0c\u6bd4\u5982C=A*B\u3002
\u5982\u679c\u8981\u81ea\u5df1\u7f16\u7a0b\u6765\u5b9e\u73b0\uff0c\u53ef\u4ee5\u8fd9\u6837\u505a\u3002

function [C]=Mutiply_matrix(A,B)
[m1,n1]=size(A);
[m2,n2]=size(B);
if(n1~=m2)
C=[];
return C;
end

C=zeros(m1,n2);
for i=1:m1
for j=1:n2
for k=1:n1
C(i,j)+=A(i,k)*B(k,j);
end
end
end

return C;
end


\u5e0c\u671b\u53ef\u4ee5\u5e2e\u52a9\u4f60\uff0c\u795d\u5b66\u4e60\u8fdb\u6b65\uff01

这个问题我考虑了很长时间。

 

单就编写max_plus函数而言,非常简单,代码如下(根据题中要求,不需要检查矩阵维数是否正确):

function C = maxplus(A, B)
% C的行数与A行数相同,C列数与B列数相同
for i = 1 : size(A, 1)
    for j = 1 : size(B, 2)
        C(i, j) = max( A(i, :) + B(:, j).' );
    end
end

 

测试实例:

>> A = round(rand(5, 3)*10)
A =
     7     1     8
    10     7     7
     8     4    10
     7     1    10
     5     6     1
>> B = round(rand(3, 4)*10)
B =
     4     6     7     7
     5     0    10     4
     3     6     8     6
>> C = maxplus(A, B)
C =
    11    14    16    14
    14    16    17    17
    13    16    18    16
    13    16    18    16
    11    11    16    12

第二问有些难度:找到矩阵E,使得A⊙E=A。

由于百度知道系统的排版缺陷,公式的表达比较困难,所以,具体的分析过程我就不写了。基本的思路就是,设定矩阵A和E的元素用aij、eij表示,则根据运算的规则,可以推导出,每个eij都应该满足一组不等式:

eij <= [akj-aki], k=1..n

并且必须有一个等式成立,所以 eij 就是右侧向量的最小值,即

E(i, j) = min( A(:,j) - A(:,i) );

然后用一个简单的二重for循环即可计算出E:

function B = E_maxplus(A)
B = A;
for i = 1:size(A,1)
    for j = 1:size(A,2)
        B(i, j) = min( A(:,j) - A(:,i) );
    end
end

 

举例:

>> A = magic(4)
A =
    16     2     3    13
     5    11    10     8
     9     7     6    12
     4    14    15     1
>> B = E_maxplus(A)
B =
     0   -14   -13    -3
   -10     0    -1   -13
   -11    -1     0   -14
    -3   -11   -10     0
>> C = maxplus(A, B)
C =
    16     2     3    13
     5    11    10     8
     9     7     6    12
     4    14    15     1

第三问,是否存在F,使得A⊙F=E?这个我还没想明白。楼主可以尝试提高悬赏刺激一下,也许我能想出答案(不是敲诈,我觉得自己为回答这个问题的付出对得起最高的悬赏)。



  • matlab涓煩闃鐨杩愮畻闂
    绛旓細A=[1,2,3,4;2,3,4,5;3,4,5,6];B=[1,2,3,4,5,6,7,8;2,3,4,5,6,7,8,9;3,4,5,6,7,8,9,0];m=3;for ii=1:m C(ii)=sum(A(ii,:))/sum(B(ii,:));end 璁$畻缁撴灉 C = 0.2778 0.3182 0.4286 ...
  • matlab 鐭╅樀鍐呭惈鏈煡鏁鐨勮绠楅棶棰
    绛旓細1銆侀鐩湁鐐瑰皬闂鈥斺擰鍜孎搴旇鏄垪鍚戦噺銆2銆佸彲浠ョ敤fsolve姹傝В锛>> K=[1 2 3;1 2 3;1 2 3];>> x=fsolve(@(x)K*[0 x(1) x(2)].'-[x(3) 0 0].',rand(1,3))Optimization terminated: first-order optimality is less than options.TolFun.x = 0.3051 -0.2034 ...
  • matlab涓鐨鐭╅樀闄ゆ硶闂
    绛旓細瀵逛簬Ax=b杩欎釜鐭╅樀涔樻硶鏉ヨ x=inv(A)*b锛岃繖鏃秞=A\b锛屼絾杩欐椂锛屽氨瑕佽姹侫鐨勮鏁扮瓑浜巄鐨勮鏁般傚浜巟A=b杩欎釜鐭╅樀涔樻硶鏉ヨ x=b*inv(A)锛岃繖鏃秞=b/A锛屼絾杩欐椂锛屽氨瑕佽姹侫鐨勫垪鏁扮瓑浜巄鐨勫垪鏁般傚浜庝綘鐨3/[1:10]锛屾槸绗簩绉嶆儏鍐碉紝涓よ呯殑鍒楁暟涓嶄竴鑷淬傚鑷撮敊璇 瀵逛簬3\[1:10]锛岃繖鏄涓绉嶏紝...
  • 鍏充簬matlab涓煩闃佃繍绠A/B鐨勭枒闂
    绛旓細鎬昏岃█涔嬶紝A\B灏辨槸姹侫*X=B鐨勮В锛屼綘鍙互鐪嬩綔鏄疉鐨勯鐭╅樀锛屽彧涓嶈繃鏄箍涔夐嗙煩闃碉紝杩欐牱A涓嶆槸鏂归樀涔熷彲浠璁$畻鐨勩傝嚦浜嶢/B锛屽湪瑙g嚎鎬ф柟绋嬬粍涓婃瘮\灏戠敤涓浜涳紝鍥犱负閫氬父閮芥妸B鍐欐垚鍒楀悜閲忥紝鎵浠ョ敤鍙嶉櫎\灏卞彲浠ヤ簡銆傜敤/鐨勮瘽锛孊閫氬父鏄鍚戦噺銆傚彲浠ユ妸B/A鐪嬩綔鏄疿*A=B鐨勮В锛岃繖閲孊鐨勫垪鏁扮瓑浜嶢鐨勫垪鏁般侫\...
  • MATLAB鐭╅樀杩愮畻闂
    绛旓細澶ф鏄洜涓洪偅浜涚湅璧锋潵鍍忛浂鐨勭偣鍏跺疄鏄緢鎺ヨ繎浜庣殑灏忔暟,鐢变簬杩愮畻璇樊,涓浜涘簲璇ユ槸0鐨勬暟寰寰鎴愪负涓浜涘緢灏忕殑鏁,妯″<1e-10.涓绉嶈В鍐虫柟娉曟槸灏唂ind(H==0)鏀规垚find(abs(H)<1e-7),鐩稿綋浜庝綘璁剧疆浜嗕竴涓棬闄,姣旈棬闄愬皬鐨勫艰涓烘槸0.鍙﹀,涓嶅缓璁綘鐢╢ind杩欐牱鐨勫嚱鏁,鍙互鐢╥ndx=abs(H)<1e-7 寰楀埌鐨刬n...
  • 鎬庢牱鐢matlab杩涜鐭╅樀涔樻硶杩愮畻鍛?
    绛旓細姣斿涔樻硶AB 涓銆1銆佺敤A鐨勭1琛屽悇涓暟涓嶣鐨勭1鍒楀悇涓暟瀵瑰簲鐩镐箻鍚庡姞璧锋潵,灏辨槸涔樻硶缁撴灉涓1琛岀1鍒楃殑鏁帮紱2銆佺敤A鐨勭1琛屽悇涓暟涓嶣鐨勭2鍒楀悇涓暟瀵瑰簲鐩镐箻鍚庡姞璧锋潵,灏辨槸涔樻硶缁撴灉涓1琛岀2鍒楃殑鏁帮紱3銆佺敤A鐨勭1琛屽悇涓暟涓嶣鐨勭3鍒楀悇涓暟瀵瑰簲鐩镐箻鍚庡姞璧锋潵,灏辨槸涔樻硶缁撴灉涓1琛岀3鍒楃殑鏁帮紱...
  • 濡備綍灏matlab涓鐨勪袱涓鐭╅樀鐨勪氦闆嗘眰鍑烘潵?
    绛旓細1銆佹垜浠鍏堥渶瑕佺煡閬matlab鍏充簬鐭╅樀闆嗗悎杩愮畻鐨勪竴浜涘嚱鏁帮紝intersect鍑芥暟姹傞泦鍚堜氦闆嗭紝setxor鍑芥暟姹傞泦鍚堜笉鍦ㄤ氦闆嗕腑鐨勫厓绱犮2銆佹垜浠墦寮matlab锛屽湪鍛戒护琛岀獥鍙d腑杈撳叆help intersect,鍙互鐪嬪埌intersect鍑芥暟鐨勭敤娉曚粙缁嶏紝涓や釜鐭╅樀鐨勪氦闆嗗氨鏄浉鍚岀殑鍏冪礌銆3銆佸湪鍛戒护琛岀獥鍙d腑杈撳叆a=[1 2 3;4 5 6;7 8 9];b=[1 3...
  • matlab涓涓嶅悓琛屽垪鏁鐭╅樀闄ゆ硶闂
    绛旓細A = [72 36 12];B = [1 2 3 1; 3 4 1 1; 4 2 1 1];[X, Y] = meshgrid(B(1, :), A); % B(1, :)涓昏鏄负浜嗚幏鍙朆鐨勫垪鏁 C = Y ./ B 缁撴灉锛欳 = 72 36 24 72 12 9 36 36 3 6 12 12 璇存槑锛氬墠鎻愭槸瑕佷繚璇鐭╅樀A鐨勫厓绱犱釜鏁板拰鐭╅樀...
  • 鍏充簬matlab鐭╅樀涔樻硶鐨闂
    绛旓細銆1銆態 >> rand(3)ans = 0.9501 0.4860 0.4565 0.2311 0.8913 0.0185 0.6068 0.7621 0.8214 rand(3)灏辨槸浜х敓涓涓3脳3鐨0锝1涔嬮棿鐨勯殢鏈烘暟鐭╅樀锛屼箻浠10锛屾墿澶10鍊嶏紝9.5013 4.8598 4.5647 2.3114 8.9130 0.1850 6.0684 7.6210 8.2141 ...
  • 鍦matlab 鐨涓涓皬闂鎳傜殑浜鸿繘鏉ヨВ绛斾竴涓
    绛旓細棣栧厛瑕佽娓呮鐨勬槸涓嶆槸x鍚庡浜嗕竴涓偣锛岃屾槸杩愮畻绗﹀彿鍓嶅浜嗕竴涓偣锛屽嵆.*鎴./鎴.^绛夌瓑銆傝〃绀虹殑鏄搴斿厓绱犵殑杩愮畻銆傛瘮濡傝涓や釜鐭╅樀A=[1 2;3 4]锛汢=[5 6;7 8]A.*B=[1*5 2*6;3*7 4*8]鑰孉*B鏄煩闃电殑涔樻硶 鍚屾牱A.^2琛ㄧず[1^2 2^2;3^2 4^2]鍚戦噺涔熸槸涓鏍凤紝涓や釜鍚戦噺涔嬮棿娌℃湁...
  • 扩展阅读:matlab矩阵的乘幂与开方 ... 用matlab生成范德蒙矩阵 ... matlab矩阵运算心得体会 ... matlab求矩阵中的值之和 ... matlab随机生成3 3矩阵 ... matlab带字母的矩阵运算 ... matlab直接输入矩阵 ... 怎么用matlab解矩阵方程 ... matlab生成6x6矩阵 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网