im_tommy 发表于 2008-10-29 21:40

求助:关于多数组相加的问题

大家好,我刚学习的MATLAB,现在遇到这样一个问题:
我有一个很大的浮点数数组,为了处理数据,我把它分成了几十个小数组(每个数组也很大),然后做了一个M函数,使这些数组可以用f(n)的形式表示,因为我闲把这几十个数组用"+"加起来比较麻烦.然后我要把这些数组按相相加或取均值,得到一个新的数组(比如新数组的第一个元素就是各小数组第一个元素的和或均值).我用sum(f(n))它把所有的元素都加起来了,最后反给我一个值,用mean(f(n))它返回我第一个小数组,资料上也查不到有关f(n)相加的例子,不知道用什么函数才好了.请老师帮忙指点,多谢!

[ 本帖最后由 im_tommy 于 2008-10-29 21:56 编辑 ]

re-us 发表于 2008-10-29 22:12

不懂什么意思?
是要求这个数组的和?sum(X(:))

im_tommy 发表于 2008-10-29 22:32

比如f(1)=,f(2)=,f(3)=,......
我想得到c=这样的和或者平均值 

re-us 发表于 2008-10-29 22:43

f=[ 1 2 3;4 5 6;7 8 9]
sum(f,1)

im_tommy 发表于 2008-10-29 23:03

我的数组都是用f(n)表示的,f(n)我定义了一个M函数,可以读取数组,因为我的这个
n=1:50,每个数组有2048个数,不太好这么表示,有什么好方法没,sum(f(n),1)好象不行吧

[ 本帖最后由 im_tommy 于 2008-10-29 23:11 编辑 ]

sigma665 发表于 2008-10-30 09:00

回复 5楼 im_tommy 的帖子

用循环呢

im_tommy 发表于 2008-10-30 12:31

For循环我不太会用,大概是这个样子吧
i=1;
for i<50
f(i)=f(i)+f(i+1);
end
<<f(49);
我这台电脑上没有环境,不知道对不,我想要是有什么函数可以解决不是会简单一些,因为这样的操作我也要进行多次

sogooda 发表于 2008-10-30 12:56

2048*50,不算太大,可以用类似4楼的方式解决。
既然已经用f(n)表示2048个数,那么f应该就是50*2048的矩阵吧。
那就可以直接sum(f,1)。
如果你还没有50*2048的这个矩阵就先由向量生成这个矩阵。

im_tommy 发表于 2008-10-30 13:14

哦,这个方法可以,我的f其实是一个50*2048个元素的大数组,f(n)是在f上截取的n个小数组,
我先把f(n)组合成一个n维矩阵f,然后就可以用sum(f,1)了,但是这样的n维数组怎么用f(n)实现方便一点呢?
工作量应该会比m=f(1)+f(2)+...+f(50)少很多吧?

sogooda 发表于 2008-10-30 13:34

回复 9楼 im_tommy 的帖子

怎么截的?

im_tommy 发表于 2008-10-30 13:55

f是一个102400个元素的数组,我把它从第一个元素开始每2048个元素变成一个小数组,即f(n),
我定义的M函数是
a=f(n)
f(n)=file(1+2048*(n-1):1:2048*n)
这样的

sigma665 发表于 2008-10-30 14:21

回复 11楼 im_tommy 的帖子

reshape(f,50,2048)
试试这个

im_tommy 发表于 2008-10-30 14:30

好的我试试 

im_tommy 发表于 2008-10-31 12:56

对不起啊,是我搞错了,我的50个小数组是从大数组截下来后分别做了FFT处理再相加,
所以用reshape(f,50,2048)变成多维数组还不行,现在问题是怎么把我做过FFT的这50个
数组变成类似f的一维数组或者用什么办法把他们相加会比我把50个数组都列出来相加
方便一点,因为我以后可能遇到把数组分成更多小数组的情况,谢谢老师再次指点~~

[ 本帖最后由 im_tommy 于 2008-10-31 13:04 编辑 ]
页: [1]
查看完整版本: 求助:关于多数组相加的问题