matlab数据处理之批量解方程

背景:处理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
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值