背景:处理excel表格中的各年沉速数据,在matlab当中对其进行数据变换——解方程,得到分界粒径数据。


**就按照一二三做一遍,因为需要先有x和y存在,再用函数才能正确运行哦**

一、导入数据

略。

如果不使用函数形式(需要处理的数据文件较少)可以这样计算:

syms x y
for i=1:length(x1993)
xsolve=solve(sqrt((13.95*0.000001/x)^2+1.09*1.65*9.8*x)-13.95*0.000001/x-y==0,x)
yvalue=x1993
xvalue=subs(xsolve,y,yvalue)
end
eval(xvalue)

如果使用函数的话:

二、写解方程函数

已知y,求解x,xsolve是关于y的表达式解

function [x] = partical2( y )
syms x y
    xsolve=solve(sqrt((13.95*0.000001/x)^2+1.09*1.65*9.8*x)-13.95*0.000001/x-y==0,x)
end

  • 引用这个函数时,事先需要先有相同长度格式的x和y的矩阵。

三、批量求解,引用函数

xvalue是xsolve代入y值之后的数值解


partical2(x2004) %%引用函数,且y为x2004文件,也可以是多年的矩阵
yvalue=x2004     %%把x2004里的值(沉速)都赋予yvalue
xvalue=subs(xsolve,y,yvalue)     %%把yvalue赋值给xsolve里的y

a2004=eval(xvalue)       %%展示xvalue真实值``
%%可以每个文件都把x2004改成自己的文件名运行,调用函数即可

c=[x2003;x2004;x2005]  %拼接,也可以前面就用多年的数据,就不用拼接了
fid = fopen('E:\Buffer\My work\Z\c.txt','wb')  %创建txt文件
##将C转置
fprintf(fid,'%8.9f %8.9f %8.9f\n',c)  %输出到c
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐