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?这个我还没想明白。楼主可以尝试提高悬赏刺激一下,也许我能想出答案(不是敲诈,我觉得自己为回答这个问题的付出对得起最高的悬赏)。
绛旓細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 ...
绛旓細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 ...
绛旓細瀵逛簬Ax=b杩欎釜鐭╅樀涔樻硶鏉ヨ x=inv(A)*b锛岃繖鏃秞=A\b锛屼絾杩欐椂锛屽氨瑕佽姹侫鐨勮鏁扮瓑浜巄鐨勮鏁般傚浜巟A=b杩欎釜鐭╅樀涔樻硶鏉ヨ x=b*inv(A)锛岃繖鏃秞=b/A锛屼絾杩欐椂锛屽氨瑕佽姹侫鐨勫垪鏁扮瓑浜巄鐨勫垪鏁般傚浜庝綘鐨3/[1:10]锛屾槸绗簩绉嶆儏鍐碉紝涓よ呯殑鍒楁暟涓嶄竴鑷淬傚鑷撮敊璇 瀵逛簬3\[1:10]锛岃繖鏄涓绉嶏紝...
绛旓細鎬昏岃█涔嬶紝A\B灏辨槸姹侫*X=B鐨勮В锛屼綘鍙互鐪嬩綔鏄疉鐨勯鐭╅樀锛屽彧涓嶈繃鏄箍涔夐嗙煩闃碉紝杩欐牱A涓嶆槸鏂归樀涔熷彲浠璁$畻鐨勩傝嚦浜嶢/B锛屽湪瑙g嚎鎬ф柟绋嬬粍涓婃瘮\灏戠敤涓浜涳紝鍥犱负閫氬父閮芥妸B鍐欐垚鍒楀悜閲忥紝鎵浠ョ敤鍙嶉櫎\灏卞彲浠ヤ簡銆傜敤/鐨勮瘽锛孊閫氬父鏄鍚戦噺銆傚彲浠ユ妸B/A鐪嬩綔鏄疿*A=B鐨勮В锛岃繖閲孊鐨勫垪鏁扮瓑浜嶢鐨勫垪鏁般侫\...
绛旓細澶ф鏄洜涓洪偅浜涚湅璧锋潵鍍忛浂鐨勭偣鍏跺疄鏄緢鎺ヨ繎浜庣殑灏忔暟,鐢变簬杩愮畻璇樊,涓浜涘簲璇ユ槸0鐨勬暟寰寰鎴愪负涓浜涘緢灏忕殑鏁,妯″<1e-10.涓绉嶈В鍐虫柟娉曟槸灏唂ind(H==0)鏀规垚find(abs(H)<1e-7),鐩稿綋浜庝綘璁剧疆浜嗕竴涓棬闄,姣旈棬闄愬皬鐨勫艰涓烘槸0.鍙﹀,涓嶅缓璁綘鐢╢ind杩欐牱鐨勫嚱鏁,鍙互鐢╥ndx=abs(H)<1e-7 寰楀埌鐨刬n...
绛旓細姣斿涔樻硶AB 涓銆1銆佺敤A鐨勭1琛屽悇涓暟涓嶣鐨勭1鍒楀悇涓暟瀵瑰簲鐩镐箻鍚庡姞璧锋潵,灏辨槸涔樻硶缁撴灉涓1琛岀1鍒楃殑鏁帮紱2銆佺敤A鐨勭1琛屽悇涓暟涓嶣鐨勭2鍒楀悇涓暟瀵瑰簲鐩镐箻鍚庡姞璧锋潵,灏辨槸涔樻硶缁撴灉涓1琛岀2鍒楃殑鏁帮紱3銆佺敤A鐨勭1琛屽悇涓暟涓嶣鐨勭3鍒楀悇涓暟瀵瑰簲鐩镐箻鍚庡姞璧锋潵,灏辨槸涔樻硶缁撴灉涓1琛岀3鍒楃殑鏁帮紱...
绛旓細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...
绛旓細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鐨勫厓绱犱釜鏁板拰鐭╅樀...
绛旓細銆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 ...
绛旓細棣栧厛瑕佽娓呮鐨勬槸涓嶆槸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]鍚戦噺涔熸槸涓鏍凤紝涓や釜鍚戦噺涔嬮棿娌℃湁...