找回密码
 注册
Simdroid-非首页
查看: 124|回复: 7

请教高手一个统计次数的编程,谢谢

[复制链接]
发表于 2011-3-31 18:21:01 | 显示全部楼层 |阅读模式 来自 江西赣州
有A=[a1,a2,a3,a4];B=[b1,b2,b3,b4]其中A与B里面的元素都是具体的数字,我现在想统计A中重复数字是个数,如果有一个数字重复出现了3次,比如a1=a2=a4,在这种情况下c就等于这个出现三次的数,如果有两个数分别出现了两次,比如a1=a4.a2=a3.这种情况下就用a1*b1+a4*b4与a2*b2+a3*b3比大小,谁大c就等于谁。请问该怎么编写,谢谢
发表于 2011-3-31 19:32:15 | 显示全部楼层 来自 黑龙江牡丹江
Simdroid开发平台
参考此贴http://forum.simwe.com/thread-909029-1-1.html,得到重复次数,然后再用简单编程(如判断语句什么的)来做下面的操作。

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2011-4-1 12:28:06 | 显示全部楼层 来自 江西赣州
2# messenger
版主,你给的这个例子我看懂了,但是不知道当A里面某个数字出现2次的时候该怎么写,因为可能是a1=a2也可能是a1=a3也可能是a1=a4,那么该怎么定位呢,特别是还要找到对应的B里面的元素进行运算,请指教下,谢谢
回复 不支持

使用道具 举报

发表于 2011-4-1 13:53:17 | 显示全部楼层 来自 河北廊坊
本帖最后由 qibbxxt 于 2011-4-1 14:14 编辑

3# xyq001303


记得以前回复过类似的帖子:
1.你可以动态的记录下元素的位置
2.可以用accumarray函数
回复 不支持

使用道具 举报

 楼主| 发表于 2011-4-1 14:10:24 | 显示全部楼层 来自 江西赣州
4# qibbxxt
版主你好,其实这四个数字就是不确定的,有可能4个全相同,也可能全部相同,所以我问一下有3个相同和2个相同的情况,弄明白了那么4个数字全不相同的情况我就可以自己写出来了~~~能指教一下么,谢谢~~~
回复 不支持

使用道具 举报

发表于 2011-4-1 14:32:16 | 显示全部楼层 来自 河北廊坊
5# xyq001303
我只写了2和3的情况,其他的情况你自己去加吧

  1. clear;clc;close all
  2. a = [1 1 2 2
  3.     3 3 2 3
  4.     4 1 1 1
  5.     5 6 5 6
  6.     7 8 8 7];
  7. b =randi(5,5,4);
  8. c(size(a,1),1)=0;
  9. f =mode(a');
  10. for i=1:size(a)
  11.     n = sum(+a(i,:)==f(i));
  12.     if n > 2
  13.         c(i) = f(i);
  14.     elseif n > 1
  15.         c(i) = max(accumarray(a(i,:)',b(i,:).*a(i,:)));
  16.     end
  17. end
复制代码
回复 不支持

使用道具 举报

发表于 2011-4-1 15:01:11 | 显示全部楼层 来自 河北廊坊
6# qibbxxt
向量编程的话

  1. a = [1 1 2 2
  2.     3 3 2 3
  3.     4 1 1 1
  4.     5 6 5 6
  5.     7 8 8 7];
  6. b =randi(5,5,4);
  7. c(size(a,1),1)=0;
  8. [f,g] =mode(a');
  9. c(g==3)=f(g==3);
  10. c(g==2)=arrayfun(@(i)max(accumarray(a(i,:)',b(i,:).*a(i,:))),find(g==2));
复制代码

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2011-4-3 14:32:54 | 显示全部楼层 来自 江西赣州
7# qibbxxt
版主你好,我还想问下,在有两个数相等的情况下,我希望将两个a*b的和求差值,如果差值小于0.2,就去两个a值的平均值,如果差值大于a,那么就去较大的那个a值,该怎么写呢?谢谢
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-10-4 23:21 , Processed in 0.045521 second(s), 18 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表