| 查看: 538 | 回复: 12 | |||
| 当前主题已经存档。 | |||
woshilsh荣誉版主 (职业作家)
|
[交流]
【求助】这个函数简单但不好懂啊!(重奖正确答案)【已完成】
|
||
|
>> D=[1 2;2 3;2 1;3 5] D = 1 2 2 3 2 1 3 5 >> [d,idx]=min(D,[],2) d = 1 2 1 3 idx = 1 1 2 1 >> M=accumarray(idx,1,[4,1]) M = 3 1 0 0 这是matlab中的一个函数,我写程序的时候用到他的功能,但看了帮助,大致功能知道了,可老搞不定具体的含义。 大家帮我看看,最后一个语句M=accumarray(idx,1,[4,1])这里得出的M是什么意思?为什么啊?特别是第2个参数1表示什么意思呢? 主要是最后一句不懂意思,M中每一行表示什么意思?如果把第二个参数改为2,结果就变了,这又是啥含义呢? [ Last edited by nono2009 on 2009-9-25 at 07:17 ] |
» 猜你喜欢
有没有人能给点建议
已经有5人回复
假如你的研究生提出不合理要求
已经有12人回复
实验室接单子
已经有7人回复
全日制(定向)博士
已经有5人回复
萌生出自己或许不适合搞科研的想法,现在跑or等等看?
已经有4人回复
Materials Today Chemistry审稿周期
已经有4人回复
参与限项
已经有3人回复
对氯苯硼酸纯化
已经有3人回复
所感
已经有4人回复
要不要辞职读博?
已经有7人回复

woshilsh
荣誉版主 (职业作家)
- 应助: 43 (小学生)
- 贵宾: 10.33
- 金币: 21115.1
- 散金: 737
- 红花: 22
- 帖子: 3777
- 在线: 639.7小时
- 虫号: 293038
- 注册: 2006-11-04
- 专业: 计算机应用技术
- 管辖: 仿真模拟

2楼2009-05-27 14:50:47
3楼2009-05-27 15:10:48
woshilsh
荣誉版主 (职业作家)
- 应助: 43 (小学生)
- 贵宾: 10.33
- 金币: 21115.1
- 散金: 737
- 红花: 22
- 帖子: 3777
- 在线: 639.7小时
- 虫号: 293038
- 注册: 2006-11-04
- 专业: 计算机应用技术
- 管辖: 仿真模拟

4楼2009-05-27 16:23:01
sitonyl
铁杆木虫 (文坛精英)
- 应助: 33 (小学生)
- 金币: 12935.9
- 红花: 3
- 帖子: 10448
- 在线: 338.8小时
- 虫号: 722261
- 注册: 2009-03-14
- 性别: GG
- 专业: 导航、制导与传感技术
★ ★ ★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
woshilsh(金币+5,VIP+0):恩,谢谢帮助,呵呵,常来! 5-27 21:49
小木虫(金币+0.5):给个红包,谢谢回帖交流
woshilsh(金币+5,VIP+0):恩,谢谢帮助,呵呵,常来! 5-27 21:49
|
二维的情况比较好理解,以2维为例说明: M=accumarray(sub,id,[m,n]) 其中sub为m1x2矩阵,id为m1维列向量。 M为mxn的矩阵,可以把它想象成全零的矩阵。把sub中每一行(如第i行)看成M中的行、列的位置,把对应的id中第i行填入M中即可。如果每一个位置有多个元素填入,则相加。 例子: sumd=accumarray([1 2;2 2;2 2;3 3],[1 5 100 3]',[5 6]) sumd = 0 1 0 0 0 0 0 105 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [ Last edited by sitonyl on 2009-5-27 at 19:31 ] |

5楼2009-05-27 19:21:22
sitonyl
铁杆木虫 (文坛精英)
- 应助: 33 (小学生)
- 金币: 12935.9
- 红花: 3
- 帖子: 10448
- 在线: 338.8小时
- 虫号: 722261
- 注册: 2009-03-14
- 性别: GG
- 专业: 导航、制导与传感技术

6楼2009-05-27 19:23:05
★
小木虫(金币+0.5):给个红包,谢谢回帖交流
小木虫(金币+0.5):给个红包,谢谢回帖交流
|
accumarray函数对向量的解释: idx是d里面元素的位置标号,如果标号有重复,则把该位置标号对应的d中元素累加重复的次数,放到对应的位置。 1楼d=1,idx有三个1,所以把1加三次,放到第一个位置,有一个2,所以把1加一次,放到第二个位置,idx没有其他的位置标号,所以后两个位置是0. 2楼idx只有一个1,位置1对应10,所以加一次,得到第一个位置是10,位置2,4,5类推。 最后一个是12,应该是默认的,如果结果的维数大于d的维数,则把d中没有取过的元素放到最后,如果是结果是【6,1】的,最后一个元素是0. 矩阵的话会更麻烦。 以上均是个人理解,仅供参考。欢迎高手交流 |
7楼2009-05-27 19:50:59
sitonyl
铁杆木虫 (文坛精英)
- 应助: 33 (小学生)
- 金币: 12935.9
- 红花: 3
- 帖子: 10448
- 在线: 338.8小时
- 虫号: 722261
- 注册: 2009-03-14
- 性别: GG
- 专业: 导航、制导与传感技术

8楼2009-05-27 20:08:56
9楼2009-05-27 21:17:03
sitonyl
铁杆木虫 (文坛精英)
- 应助: 33 (小学生)
- 金币: 12935.9
- 红花: 3
- 帖子: 10448
- 在线: 338.8小时
- 虫号: 722261
- 注册: 2009-03-14
- 性别: GG
- 专业: 导航、制导与传感技术

10楼2009-05-27 22:37:56












回复此楼