![]() |
[求助]对这个式子如何一边计算一边排序
给定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,所以还请大家多指教!谢谢。 |
回复: [求助]对这个式子如何一边计算一边排序
你不是只取最后的前20个的值吗?
为什么还要一边计算fmn,一边对其进行排序呢?这不是做无用功吗? |
回复: [求助]对这个式子如何一边计算一边排序
可能我表达的不够清楚,是只取最小的前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 |
回复: [求助]对这个式子如何一边计算一边排序
因为按照mn的顺序,比如说
1 0 2 0 3 0 .... 0 1 0 2 0 3 ... 1 1 1 2 1 3 ..... 求出来的fmn的大小是打乱的,我想要得到从小到大排列的fmn,并且得到对应m值,n值 |
回复: [求助]对这个式子如何一边计算一边排序
可以先计算然后把计算出来的数值进行查找,看在那个的后面,或者前面,然后放到哪里就可以了
|
回复: [求助]对这个式子如何一边计算一边排序
[QUOTE=anbcjys;19197]可以先计算然后把计算出来的数值进行查找,看在那个的后面,或者前面,然后放到哪里就可以了[/QUOTE]
谢谢啊,我明白了 |
回复: [求助]对这个式子如何一边计算一边排序
使用sort函数,然后根据index再找出对应的fmn值!
|
回复: [求助]对这个式子如何一边计算一边排序
谢谢风浪,问题解决了
|
所有时间均为北京时间。现在的时间是 11:05。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.