MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   [求助]对这个式子如何一边计算一边排序 (https://www.labfans.com/bbs/showthread.php?t=5162)

hchhuahua 2008-11-04 21:30

[求助]对这个式子如何一边计算一边排序
 
给定a,b的大小,在不同的m和n时,求fmn的值,并且对fmn的值从小到大排序,只取前20个的值,并保存fmn相应的m和n。m和n都是整数,从0开始往大,但是m和n不同时为0。现在的问题是我怎么样能一边计算fmn,一边对其进行排序,同时得到排序之后的m和n。
mn可能的组合有
1 0
2 0
3 0
....
0 1
0 2
0 3
...
1 1
1 2
1 3
.....

a=3.485;b=1.580;
fmn=sqrt((m*pi/a)^2+(n*pi/b)^2);%m,n都是从0,1,2,3。。

我自己通过一些计算已经知道排序后的m和n,但是不知道具体用matlab怎么实现。因为刚学matlab,所以还请大家多指教!谢谢。

messenger 2008-11-04 22:07

回复: [求助]对这个式子如何一边计算一边排序
 
你不是只取最后的前20个的值吗?

为什么还要一边计算fmn,一边对其进行排序呢?这不是做无用功吗?

hchhuahua 2008-11-04 22:19

回复: [求助]对这个式子如何一边计算一边排序
 
可能我表达的不够清楚,是只取最小的前20个值。
比如我算了如下这么多个,但是没有排序。
m n fcmn
1 0 4.3013
2 0 8.6026
3 0 12.9039
4 0 17.2052
5 0 21.5065
6 0 25.8077
7 0 30.109
8 0 34.4103
0 1 9.4873
1 1 10.4168
2 1 12.8068
3 1 16.0162
4 1 19.6476
5 1 23.5061
6 1 27.4964
7 1 31.5684
8 1 35.6943
0 2 18.9747
1 2 19.4561
2 2 20.8337
3 2 22.9466
4 2 25.6136
5 2 28.6804
6 2 32.0325
7 2 35.5892
8 2 39.2952
0 3 28.462
1 3 28.7852
2 3 29.7337
3 3 31.2505
4 3 33.2582
5 3 35.6737
6 3 38.4204
7 3 41.4324
8 3 44.656
0 4 37.9494
1 4 38.1923
2 4 38.9122
3 4 40.0832
4 4 41.6674
5 4 43.6197
6 4 45.8933
7 4 48.4428
8 4 51.2272
0 5 47.4367
1 5 47.6313
2 5 48.2104
3 5 49.1605
4 5 50.4605
5 5 52.0842
6 5 54.0026
7 5 56.1854
8 5 58.603
0 6 56.9241
1 6 57.0863
2 6 57.5704
3 6 58.3683
4 6 59.4673
5 6 60.8513
6 6 62.5011
7 6 64.3964
8 6 66.5163
0 7 66.4114
1 7 66.5505
2 7 66.9662
3 7 67.6534
4 7 68.6039
5 7 69.8069
6 7 71.2497
7 7 72.9179
8 7 74.7967
取最小的前20个如下:

1 4.3013
2 8.6026
3 9.4873
4 10.4168
5 12.8068
6 12.9039
7 16.0162
8 17.2052
9 18.9747
10 19.4561
11 19.6476
12 20.8337
13 21.5065
14 22.9466
15 23.5061
16 25.6136
17 25.8077
18 27.4964
19 28.462
20 28.6804

hchhuahua 2008-11-04 22:25

回复: [求助]对这个式子如何一边计算一边排序
 
因为按照mn的顺序,比如说
1 0
2 0
3 0
....
0 1
0 2
0 3
...
1 1
1 2
1 3
.....
求出来的fmn的大小是打乱的,我想要得到从小到大排列的fmn,并且得到对应m值,n值

anbcjys 2008-11-05 08:26

回复: [求助]对这个式子如何一边计算一边排序
 
可以先计算然后把计算出来的数值进行查找,看在那个的后面,或者前面,然后放到哪里就可以了

hchhuahua 2008-11-05 23:50

回复: [求助]对这个式子如何一边计算一边排序
 
[QUOTE=anbcjys;19197]可以先计算然后把计算出来的数值进行查找,看在那个的后面,或者前面,然后放到哪里就可以了[/QUOTE]

谢谢啊,我明白了

风浪 2008-11-06 13:00

回复: [求助]对这个式子如何一边计算一边排序
 
使用sort函数,然后根据index再找出对应的fmn值!

hchhuahua 2008-11-11 01:43

回复: [求助]对这个式子如何一边计算一边排序
 
谢谢风浪,问题解决了


所有时间均为北京时间。现在的时间是 11:05

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.