24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1237  |  回复: 5

阿黛拉

银虫 (小有名气)

[求助] 两列相乘得第三列,第三列求和记为A,第二列求和记为B,然后A除以B。

两列相乘得第三列,第二列求和记为B,第三列求和记为A,然后A除以B。


例如
第一列            第二列

......            ......
......            ......
-9.09421          1.07E-09
-9.00023          2.03E-08
......            ......
3.65431           0.29591
......            ......

总共有2001行
类似这样的excel文件,如何写程序直接读入文件,实现第一列*第二列得到第三列,然后第二列和第三列分别求和得到B和A,最后A/B。
回复此楼
进退有度,才不至进退维谷;宠辱皆忘,方可以宠辱不惊。
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
阿黛拉: 金币+2, ★★★很有帮助, 非常感谢 2012-06-09 21:35:52
用matlab可以直接读入excel数据
CODE:
data = xlsread('test.xls');
col1 = data(:,1); % 第一列
col2 = data(:,2); % 第二列
col3 = col1.*col2; % 1,2列相乘
A = sum(col3); % 第三列求和
B = sum(col2); % 第二列求和
result = A/B; % A/B

matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
2楼2012-06-09 21:28:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

阿黛拉

银虫 (小有名气)

引用回帖:
2楼: Originally posted by libralibra at 2012-06-09 21:28:30
用matlab可以直接读入excel数据


data = xlsread('test.xls');
col1 = data(:,1); % 第一列
col2 = data(:,2); % 第二列
col3 = col1.*col2; % 1,2列相乘
A = sum(col3); % 第三列求和
B = sum(col2); %  ...

感谢您的应注,很久就听说matlab,一直没用过。目前我在linux下操作,编个小程序我认为更方便。请问可以编个程序吗?谢谢
进退有度,才不至进退维谷;宠辱皆忘,方可以宠辱不惊。
3楼2012-06-09 21:35:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

引用回帖:
3楼: Originally posted by 阿黛拉 at 2012-06-09 21:35:35
感谢您的应注,很久就听说matlab,一直没用过。目前我在linux下操作,编个小程序我认为更方便。请问可以编个程序吗?谢谢...

linux下更方便了,去下个octave,等于是linux下免费的matlab,通吃matlab的m文件
上面的代码无需任何改动应该可以运行的
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
4楼2012-06-09 23:59:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
阿黛拉: 金币+5, ★★★★★最佳答案 2012-06-10 15:51:00
这个程序不难写吧,首先你定义一个三列的数组
数据文件为文本文件
大概这个样子吧,细节你自己折腾吧……
CODE:
open(7,file='data.txt')
do i=1,2001
read(7,*) data(i,1), data(i,2)
data(i,3) = data(i,1) * data(i,2)
end do
A = sum(data(2,:))
B = sum(data(3,:))
write(*,*) A/B

5楼2012-06-10 10:05:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

阿黛拉

银虫 (小有名气)

引用回帖:
5楼: Originally posted by snoopyzhao at 2012-06-10 10:05:32
这个程序不难写吧,首先你定义一个三列的数组
数据文件为文本文件
大概这个样子吧,细节你自己折腾吧……

open(7,file='data.txt')
do i=1,2001
read(7,*) data(i,1), data(i,2)
data(i,3) = data(i,1) * d ...

你好,记得以前求助都是你应助的,再次感谢。由于不是学习编程的所以有些问题力不从心。
进退有度,才不至进退维谷;宠辱皆忘,方可以宠辱不惊。
6楼2012-06-10 15:50:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 阿黛拉 的主题更新
信息提示
请填处理意见