用matlab写两个矩阵相乘,请求Matlab大神编辑程序! 编写一个函数,得到两个矩阵A和B的相乘的结果,函数的形式必须是...

你的代码肯定存在问题,但应该不至于导致MATLAB崩溃,如果如你所说每次运行MATLAB都会自动退出,那应该是其他原因导致。1、首先应该明确:你的代码分成两部分,clear之前那部分是函数,应该保存成一个文件;从clear开始的后面那部分可以直接在命令行运行,也可以保存成为一个脚本文件来使用。当然,更可取的做法是把两部分都写成函数,这样就可以保存到一个文件中了。2、函数部分的写法存在问题:(1)odefun的前两个输入参数固定为t和y(其中y是向量),不是你随便写的x、y、z;(2)你的这一行:x=-20;y=3;z=0.5;相当于把所有输入参数的值都给覆盖了,肯定是不对的(看你的本意似乎是赋初始条件)。我给改了一下,供参考:function zd587340768t0=0;tm=2;x0=-20;y0=3;z0=0.5;[T,Y]=ode45(@myequ,[t0 tm],[x0 y0 z0]);plot(T,Y(:,1),'-')function dy=myequ(t,Y)dy=zeros(3,1);x=Y(1);y=Y(2);z=Y(3);dy(1)=3*x*y+y^2+z;dy(2)=x+y*z+3;dy(3)=x*y+y*z;得到的结果:www.mh456.com防采集。

函数e68a84e8a2ad3231313335323631343130323136353331333337626138文件matmult_20150101.mfunction matrixproduct = matmult_20150101(A, B)[m,n] = size(A);[x,y] = size(B);if(n~=x)    disp(['矩阵维度不匹配'])    returnendmatrixproduct = 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);        end    endend

图片懒得抄了,LZ试试看这个,把满足L>270的s都存到s_select里: clear clc sym A s;x=140;y=167;p=.;r=.;s_select=[];for a=0:20 s=eval(r);B=.;L=688*sin(B);if(L>270) s_select=[s_select,s];

8-810-jpg_6-1080-0-0-1080.jpg

调用示例>> 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

好长,你的sum=0;后面的(s*C+G)*exp(-s*td(1:k,1:k));这个应该是个矩阵,是不能加的 你令sum=zeros(i,j)i j根据后面矩阵的大小而定,

c2caaf26692da2de79d4e37f4469ee47.png

内容来自www.mh456.com请勿采集。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值