用MATLAB编个计算小程序

我想将一组数据(上百个,而且都是小数点四位以上)进行一个公式运算,公式不是特别复杂,但是人工算明显很浪费时间,且容易差错,数据有word表格或者excel格式数据库,公式大概是这个样子,z=a根号下(1/y)*x,其中a是常数,x,y是自变量!
谢谢帮忙,成功后可追加100

第1个回答  2012-01-10
1、在matlab操作界面,word表格不可能调用,尽量用excel表格。
2、matlab使用excel表格时,可又通过在界面操作窗口的左上方,用创建新表格的方式创建一个空表格,再将excel表格调入即可转化为matlab可使用的数据矩阵。
3、从问题上看,x,y两个变量的维数应该一致,是一个n*1的n列1行的矩阵。
4、matlab关于函数式的表达,与代数式完全一样:a=((1/y)^(1/2))*x
5、如果x y两个变量的取值是正交方式,那么就要引入循环变量:for i=1:n,j=1:n,上式变为
aij==((1/yij)^(1/2))*xij
6、在matlab窗口下,可以先编程序,也可一条一条命令输入。如果是新手,建议一条一条输入,以便检查每一条的语法是否正确。
第2个回答  2012-01-11
1.将excel格式数据导入workspace里面(用import data),便生成矩阵 接下来操作就是计算了
或者
2:将excel格式数据用命令A=xlsread('excel文件名称')导成矩阵A,然后对A操作即可,注意:该excel文件一定放入工作路径里面,且命名用英文
第3个回答  2012-01-10
我想你存的数据应该有一定规律,你把数据存在文本文档123.txt中,假设第一列为x,第二列为y.
[x y]=textread('123.txt','%f %f %f','headerlines',0);
if length(x)==length(y)
for i=1:length(x)
z(i)=a*sqrt((1/y(i))*x(i));
end
end

说个题外话,你非要用Matlab么?excel计算很方便的 ,有问题请追问追问

excel出来的曲线图一般不太好看,不过excel能实现的话,还麻烦指教一下!excel的计算真的不太用,

追答

假设x在A1,y在B1,Z显示在C1.你选中C1 在fx中输入公式 =a*sqrt((1/B1)*A1)
然后选中C1的右下角表等鼠标变成纯黑色十字,往下拖从C1拖到C100,C1到C100就变成0,你把数据粘贴到A1到A100和B1到B100,C就自动计算出结果

追问

谢谢你!@我试着用excel操作了,但是发现往下拖了以后得到的并不是0或者计算结果,而是输入的公式:
12*sqrt((1/B1)*A1)
12*sqrt((1/B1)*A2)
12*sqrt((1/B1)*A3)
12*sqrt((1/B1)*A4)
12*sqrt((1/B1)*A5)
12*sqrt((1/B1)*A6)
12*sqrt((1/B1)*A7)
12*sqrt((1/B1)*A8)
12*sqrt((1/B1)*A9)
12*sqrt((1/B1)*A10)
请问这个是什么原因?

本回答被提问者采纳
相似回答