myfun函数文件:
function[t,u,w,v]=myfun(a,b,c,e,i,g,h,j,k)
A=[a,b,c];
B=[e,i,g];
AB=B-A;
axis=[1,0,0];
m=sum(axis.*AB);
n=norm(axis)*norm(AB);
v=180-(acos(m/n))*180/3.14;
t=(a+h)/2;
u=(b+j)/2;
w=(c+k)/2;
end
主函数:
function zuotu()
data = xlsread('L.xlsx');
pi=3.1415926;
L=data;
x=L(:,1);
y=L(:,2);
z=L(:,3);
plot3(x,y,z,'--*r','markersize',6)
hold on;
[t,u,w,v]=myfun(97.1,42.1,34,44.8,12.8,34,51.3,-5.7,2.5)
Q=[1,0,0,0;
0,1,0,0;
0,0,1,0;
-74.2,-18.2,-18,1]
R=[cos(v*2*pi/360),sin(v*2*pi/360),0,0;
-sin(v*2*pi/360),cos(v*2*pi/360),0,0;
0,0,1,0;
0,0,0,1] % 绕Z轴转动b
S=[1,0,0,0;
0,1,0,0;
0,0,1,0;
t,u,w,1]
N=L*Q*R*S
x1=N(:,1);
y1=N(:,2);
z1=N(:,3);
plot3(x1,y1,z1,'--o','markersize',4)
在命令窗口输入:》zuotu,可以得出图片,但是我想把主函数文件里的[t,u,w,v]=myfun(97.1,42.1,34,44.8,12.8,34,51.3,-5.7,2.5)里的具体数值用原字母代替,只在命令窗口里输入具体数字生成图片,列如zuotu(97.1,42.....),请问输入什么命令,命令格式?
matlab function作图,作图的参数为另外一个function2函数的输出,想把function2的输入改成字母。。
答案:2 悬赏:70 手机版
解决时间 2021-02-08 17:37
- 提问者网友:记得曾经
- 2021-02-07 18:35
最佳答案
- 五星知识达人网友:迷人又混蛋
- 2021-02-07 19:01
把zuotu函数改成这样试试,没有数据,不知道结果
function zuotu(a,b,c,e,i,g,h,j,k)
data = xlsread('L.xlsx');
pi=3.1415926;
L=data;
x=L(:,1);
y=L(:,2);
z=L(:,3);
plot3(x,y,z,'--*r','markersize',6)
hold on;
[t,u,w,v]=myfun(a,b,c,e,i,g,h,j,k)
Q=[1,0,0,0;
0,1,0,0;
0,0,1,0;
-74.2,-18.2,-18,1]
R=[cos(v*2*pi/360),sin(v*2*pi/360),0,0;
-sin(v*2*pi/360),cos(v*2*pi/360),0,0;
0,0,1,0;
0,0,0,1] % 绕Z轴转动b
S=[1,0,0,0;
0,1,0,0;
0,0,1,0;
t,u,w,1]
N=L*Q*R*S
x1=N(:,1);
y1=N(:,2);
z1=N(:,3);
plot3(x1,y1,z1,'--o','markersize',4)
function zuotu(a,b,c,e,i,g,h,j,k)
data = xlsread('L.xlsx');
pi=3.1415926;
L=data;
x=L(:,1);
y=L(:,2);
z=L(:,3);
plot3(x,y,z,'--*r','markersize',6)
hold on;
[t,u,w,v]=myfun(a,b,c,e,i,g,h,j,k)
Q=[1,0,0,0;
0,1,0,0;
0,0,1,0;
-74.2,-18.2,-18,1]
R=[cos(v*2*pi/360),sin(v*2*pi/360),0,0;
-sin(v*2*pi/360),cos(v*2*pi/360),0,0;
0,0,1,0;
0,0,0,1] % 绕Z轴转动b
S=[1,0,0,0;
0,1,0,0;
0,0,1,0;
t,u,w,1]
N=L*Q*R*S
x1=N(:,1);
y1=N(:,2);
z1=N(:,3);
plot3(x1,y1,z1,'--o','markersize',4)
全部回答
- 1楼网友:骨子里都是戏
- 2021-02-07 20:30
拟合一条光滑的曲线可以采用回归分析和数值拟合的方法 数值拟合主要应用polytool可以,polyfit函数进行。其中polyfit可以完成一次、二次以及多次拟合,但准确性不高。 例如:有描述问题甲和问题乙的两组数据(x,y)和(x,z)。设 x=[0 1 2 3 4 ];y=[1.0 1.3 1.5,2.0 2.3];z=[0.6,1.95,0.9,2.85,1.8]; 如果在平面上画出散点图, plot(x,y,'r.',x,z,'b*') 那么问题甲的5个点基本在一条直线上而问题乙的5个点却很散乱。如果都用命令 c1=polyfit(x,y,1), c2=polyfit(x,z,1) 来拟合,将得到同一条直线 对于数据较多的情况最好用回归分析进行求解 回归分析就是解决这种问题的科学方法。 x=[0 1 2 3 4 ]';y=[1.0 1.3 1.5,2.0 2.3]';z=[0.6,1.95,0.9,2.85,1.8]'; x=[ones(5,1),x]; [b,bint,r,rint,stats]=regress(y,x,0.05); b = 0.9600 0.3300 bint = 0.7638 1.1562 0.2499 0.4101 输出参数的意义: 第一个参数的置信区间:[0.7638 1.1562] 第二个参数的置信区间:[0.2499 0.4101] stats = 0.9829 171.9474 0.0010 0.0063 r2=0.9829 f=171.9474, p=0.0010. r是衡量y与x的相关程度的指标,称为相关系数。r越大,x与y关系越密切。通常r大于0.9才认为相关关系成立。 f是一统计指标 p是与f对应的概率,当 p<0.05时,回归模型成立。 此例中 p=0 <0.0010<0.05,所以,所得回归模型成立。 再输入 rcoplot(r,rint) 得图形,说明第3个数据应剔除,将会得到更准确的模型. 将其中的数据导入matlab处理: 将excel中的数据转入txt文本文件,然后运行matlab,在matlab中选择file选项中的import data,选中txt文本文件即可将数据载入matlab,这种方法处理数据在数模中应用很广
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯