1樓:匿名使用者
很高興為您解答這個問題,matlab中兩個矩陣是可以直接相乘的,比如c=a*b。
如果要自己程式設計來實現,可以這樣做。
function [c]=mutiply_matrix(a,b)[m1,n1]=size(a);
[m2,n2]=size(b);
if(n1~=m2)
c=;return c;
endc=zeros(m1,n2);
for i=1:m1
for j=1:n2
for k=1:n1
c(i,j)+=a(i,k)*b(k,j);
endend
endreturn c;
end希望可以幫助你,祝學習進步!
2樓:時砂之王的
matlab中不是可以直接進行矩陣計算
關於matlab 建立函式m檔案 怎麼實現兩個矩陣相乘?
3樓:龔訪雁
你的意思是自己編寫矩陣乘法吧,否則直接呼叫matlab得 * 函式就得了
驗證成功,可以執行
請求matlab大神編輯程式! 編寫一個函式,得到兩個矩陣a和b的相乘的結果,函式的形式必須是
4樓:匿名使用者
函式檔案matmult_20150101.mfunction matrixproduct = matmult_20150101(a, b)
[m,n] = size(a);
[x,y] = size(b);
if(n~=x)
disp(['矩陣維度不匹配'])
return
endmatrixproduct = zeros(m,y);
for i=1:m
for j=1:y
for k=1:n
matrixproduct(i,j) = matrixproduct(i,j) + a(i,k)*b(k,j);
endend
end呼叫示例
>> a=[1 2 3;4 5 6];
>> b = [1 1 1 1;2 3 4 5];
>> c = [1 1 1 1;2 3 4 5;3 4 5 6];
>> matmult_20150101(a, b)矩陣維度不匹配
>> matmult_20150101(a, c)ans =
14 19 24 29
32 43 54 65
>> a*c % 直接計算
ans =
14 19 24 29
32 43 54 65
請問,如何在matlab中編寫程式實現求兩矩陣a*b,a.*b?
5樓:匿名使用者
首先可以求點乘,維數肯定要相同;
「.*」和「*」的區別:
在進行數之間的運算時「.*」和「*」是沒有區別的,都是表示普通的乘法運算。例:m = 2,n = 3,m.*n = 6, m*n = 6。
在進行矩陣之間的運算時「.*」和「*」的意義就有所不同了。假設a,b表示兩個矩陣,a*b表示矩陣a與矩陣b進行矩陣相乘,a.
*b表示矩陣a中的元素與矩陣b中的元素按位置依次相乘,得到的結果將作為新矩陣中相同位置的元素。
matlab 中用一個特殊的符號來區分矩陣運算和陣列運算。在需要區分兩者不同的時侯,把點置於符號前來指示這是一個陣列運算(例如, .*)。
也就是說在matlab裡直接使用「*」和「.*」這兩個符號就可以了。
matlab編寫m檔案,至少採用兩種方法,將a矩陣轉換為b矩陣 10
6樓:匿名使用者
% 方法du一
zhidao
>> a=[1 2 3 4;5 6 7 8];
>> b = zeros(size(a));
>> b(:,1:end) = a(:,end:-1:1)b =4 3 2 18 7 6 5
% 方法二版權
>> a=[1 2 3 4;5 6 7 8];
>> b = zeros(size(a));
>> for i=1:size(a,1)
for j = 1:size(a,2)
b(i,j) = a(i,size(a,2)+1-j);
endend
>> b
b =4 3 2 18 7 6 5
matlab編寫m函式檔案,要求具有兩個輸入變數:a和n,對於輸入矩陣a,找出a中大於或等於n的元素值並顯示
7樓:匿名使用者
clear,clc
a=input('輸入矩陣a=');
n=input('n=');
j=1;
for i=1:length(a)
if a(i)>n
b(j)=a(i)
j=j+1;
endend
matlab題目:編寫一個函式檔案,用於求兩個矩陣的乘積和點乘,然後在命令檔案中呼叫該函式。。。寫出過程 25
8樓:宋
function f=work(a,b)
f=a.*b;
就可以啦!只不過你m檔案存名為work。m
9樓:匿名使用者
在matlab中沒有這麼麻煩。假如有兩個矩陣a,b的話,點乘直接用a.*b指令就可以了,乘積直接用a*b
在matlab建立函式m檔案 ,用三重迴圈計算兩個矩陣相乘
10樓:註冊時嚇一跳
我知道的復m檔案的建立有兩種方法制:
1、開啟matlab,點bai
擊新建按鈕du,在裡zhi面寫上**,點dao儲存就可以了。
2、新建一個記事本檔案,寫上**,儲存的時候字尾名改為.m,儲存好的檔案就是m檔案了。
至於你說的三重迴圈計算兩個矩陣相乘,我不知道你的意思是什麼,在matlab裡面兩個矩陣相乘,只要滿足矩陣乘法的條件,直接乘就行了,比如:
a=[1,2,3;4,5,6;7,8,9]b=[9,8,7;6,5,4;3,2,1]在***mand視窗直接輸入a*b,敲回車,就會得到答案了。
11樓:高等數學答案
兩個矩陣直接乘就行了,用不著迴圈吧。如果是每個元素相乘,用點乘就行了。
12樓:電燈劍客
給你bai個du樣zhi
板dao
內function c = mult(a, b)m = size(a, 1);
k = size(a, 2);
n = size(b, 2);
if k ~
容= size(b, 1)
error('cannot do a*b');
return
endfor j = 1 : n
for r = 1 : k
for i = 1 : m
c(i, j) = a(i, r) * b(r, j);
endend
endreturn
13樓:匿名使用者
^function y=fun(x);
x=input('輸入
zhix的值dao:');
if x<0&x~
版=3;y=x.^權2+x-6;
else if x>=0&x<=5&x~=2&x~=3;
y=x.^2-5.*x+6;
else y=x.^2-x-1;
endendy
1編寫M函式,用於計算兩個矩陣的積(兩個矩陣作為輸入
function c ji a,b m n size a m n size b if n m error 前者列數與後者行數不同,無法相乘!else for p 1 m for q 1 n for t 1 n d p,q,t a p,t b t,q endc p,q sum d p,q,endend...
matlab怎麼呼叫m檔案,matlab中一個m檔案怎麼呼叫另一個m檔案的函式
用任何方式建立都行,包括記事本,或者是matlab自帶的編譯器,然後將matlab工作目錄切換到檔案所在目錄,直接輸入檔名執行。或者在任何目錄下輸入該檔案的完全路徑。m檔案有兩種格式,一種叫做script,就是將一系列的命令寫成一個檔案。執行這種檔案相當於一次性執行了很多條命令 所有執行過程中的資料...
matlab的一道題目編寫矩陣相加函式
function a mat add a1,varargin 多個抄矩陣相加 未做引數合 bai法性檢查,參與du運算的矩陣應zhi該維數相同或為標量 舉例 daomat add magic 5 3,pascal 5 a a1 for i 1 length varargin a a varargin...