MATLAB中文论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 636|回复: 6|关注: 0

[已解决] 有个数据处理的设想,不知道怎么用MATLAB代码实现

[复制链接]

新手

11 麦片

财富积分


050


14

主题

41

帖子

0

最佳答案
大家好,我在弄一个数据处理的算法,现在有一个小问题不知道怎么解决。假设有4个数据,我想检测一下这里面是否有3个数,这3个数中最大值与最小值之差小于一个值(比如0.1)。这个应该怎么用代码实现呢?

论坛优秀回答者

专家

2091 麦片

财富积分


20003000


0

主题

2586

帖子

474

最佳答案
  • 关注者: 61
发表于 2017-1-10 21:25:33 | 显示全部楼层 |此回复为最佳答案
假设a是你的一行4列的数据,
index = combntns(1:4,3);
flag = 0;
for i=1:size(index,1)
    if(max(a(index(i,:)))-min(a(index(i,:)))<0.1)
        flag = 1;
        break;
    end
end
上述程序段运行完以后flag为1时,表示满足你的条件,为0时表示不满足

新手

11 麦片

财富积分


050


14

主题

41

帖子

0

最佳答案
 楼主| 发表于 2017-1-11 09:33:33 | 显示全部楼层
本帖最后由 Silver\USTC 于 2017-1-11 09:38 编辑
diting14 发表于 2017-1-10 21:25
假设a是你的一行4列的数据,
index = combntns(1:4,3);
flag = 0;

combntns是什么函数,好像在我这个版本里面都移除了
运行后出现这个:Warning: The COMBNTNS function will be removed in a future release. 还有一个问题就是我在检测到有这3个数后怎么把这3个数提取出来呢?

论坛优秀回答者

权威

5986 麦片

财富积分



5

主题

7332

帖子

1371

最佳答案
  • 关注者: 294
发表于 2017-1-11 09:40:54 | 显示全部楼层
本帖最后由 jingzhaos 于 2017-1-11 09:57 编辑

combntns变成了nchoosek函数。
  1. a=rand(1,4)
  2. index=nchoosek(1:4,3);
  3. diffa=max(a(index),[],2)-min(a(index),[],2)
  4. a(index(diffa<0.1,:))
复制代码

新手

5 麦片

财富积分


050


2

主题

33

帖子

0

最佳答案
发表于 2017-1-11 10:36:31 | 显示全部楼层
世上没有绝望的处境,只有对处境绝望的人。 1817811594.jpg

论坛优秀回答者

专家

2091 麦片

财富积分


20003000


0

主题

2586

帖子

474

最佳答案
  • 关注者: 61
发表于 2017-1-11 12:25:48 来自手机 | 显示全部楼层
这个warning.显示你的系统里还有这个函数
来自: 微社区

新手

11 麦片

财富积分


050


14

主题

41

帖子

0

最佳答案
 楼主| 发表于 2017-1-11 15:50:47 | 显示全部楼层
嗯,已经明白这函数怎么用啦:lol
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

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