作业帮 > 综合 > 作业

matlab 编写一个函数

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/27 15:33:27
matlab 编写一个函数
1.我想写一个函数
function [Rp,Rd,R] = aa11( a,b)
syms a b Rsp Rsd R
N=[sqrt(51),sqrt(21.8);sqrt(2.3),sqrt(48.5)];
N1=[36.4*(1+cos(a*pi/180)),sqrt(51);25.4*(1+cos(b*pi/180)),sqrt(2.3)];
N2=[sqrt(21.8),36.4*(1+cos(a*pi/180));sqrt(48.5),25.4*(1+cos(b*pi/180))];
Rd=det(N1)^2/det(N)^2;
Rp=det(N2)^2/det(N)^2;
R=Rp+Rd;
end
就是Rd是N1行列式平方比N行列式平方
就是Rp是N2行列式平方比N行列式平方
R=Rp+Rd
输入 a,b.得到 Rd.Rp.R
2.for 循环输入A=[a1 a2 a 3 ……]
B=[b1 b2 b3……]
就是有很多a b,都要用上面函数计算,想一次输入
或者您帮我写一个M脚本也行,就通过数组一次输入很多数据(a,b)
结果最好导入excel
1:
syms a b Rsp Rsd R
这一句去掉就可以了.
function [Rp,Rd,R] = aa11( a,b)
N=[sqrt(51),sqrt(21.8);sqrt(2.3),sqrt(48.5)];
N1=[36.4*(1+cos(a*pi/180)),sqrt(51);25.4*(1+cos(b*pi/180)),sqrt(2.3)];
N2=[sqrt(21.8),36.4*(1+cos(a*pi/180));sqrt(48.5),25.4*(1+cos(b*pi/180))];
Rd=det(N1)^2/det(N)^2;
Rp=det(N2)^2/det(N)^2;
R=Rp+Rd;
end
2.
A=[1,3,4,6,8,9];
B=[2,1,3,4,5,7];
if numel(A)~=numel(B)
error('A,B元素个数不匹配')
end
data=[];
for i=1:numel(A)
[Rp,Rd,R] = aa11(A(i),B(i))
data=[data;A(i),B(i),Rp,Rd,R];
end
success=xlswrite('d:\data.xls',data) %第一列为A,第二列为B,第三列为Rp,第四列为Rd,第五列为R
再问: 您好,我就直接把aa11存一下,您把2帮我做成A=input B=input 就是在脚本运行代码,让后我在command window 输A= B= 保存一下结果生成excel,您帮我写成直接用的我新手 改好给你追加50 。
再答: 你把第2步的A,B的赋值改为: A=input('A='); B=input('B='); 注意输入时,应当这样输: [1,3,4,6] [2,3,4,7,8] 记得要有中括号 其它的可以不变
再问: 可以加你好友么