matlab数据处理之批量解方程

该博客介绍了如何在MATLAB环境中处理Excel数据,通过编写函数批量解复杂方程来获得分界粒径。首先导入数据,然后定义解方程的函数,最后调用函数并进行数值替换,将结果保存到新的文件中。这种方法适用于处理多个年份的数据,方便快捷。
摘要由CSDN通过智能技术生成

背景:处理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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值