楼主: chem小白

[已解决] 在cell里找到找到1+-0.005的元素来输出行和列

[复制链接]

新手

20 麦片

财富积分


050


7

主题

40

帖子

0

最佳答案
 楼主| 发表于 2019-1-9 16:22:38 | 显示全部楼层
jingzhaos 发表于 2019-1-9 16:16
那你直接用find查找OO{1,1}{1,1}就可以呀。

不只是在{1,1}{1,1}里找,就是要在每一个里找,从{1,1}{1,1}到{1,8}{1,16}都要找

论坛优秀回答者

权威

9153 麦片

财富积分



11

主题

1万

帖子

1994

最佳答案
  • 关注者: 525
发表于 2019-1-9 17:10:28 | 显示全部楼层
chem小白 发表于 2019-1-9 16:22
不只是在{1,1}{1,1}里找,就是要在每一个里找,从{1,1}{1,1}到{1,8}{1,16}都要找

那就循环

新手

20 麦片

财富积分


050


7

主题

40

帖子

0

最佳答案
 楼主| 发表于 2019-1-9 17:29:30 | 显示全部楼层

我做了这个循环:
for iii=1:8,
    iii
    for iiii=1:16
    iiii
    [row,column]=find(abs(OO{1,iii}{1,iiii}-1)<=0.0005+eps);
    [rc]=[rc;{row,column}];
     end
end是表示第8个一级数组的第6个数组里有我要的结果吗?我去找了之后对不上号呀

得到的结果

得到的结果

论坛优秀回答者

权威

9153 麦片

财富积分



11

主题

1万

帖子

1994

最佳答案
  • 关注者: 525
发表于 2019-1-9 18:57:48 | 显示全部楼层
chem小白 发表于 2019-1-9 17:29
我做了这个循环:
for iii=1:8,
    iii

你可以将一部分数据放上来看看。

新手

20 麦片

财富积分


050


7

主题

40

帖子

0

最佳答案
 楼主| 发表于 2019-1-10 10:06:58 | 显示全部楼层
O数据在附件的表格里。这是经过你上次帮我写的得到OO的cell,然后再循环。
OO=arrayfun(@(k) arrayfun(@(m) O(k,m)./O(k+1:end,:),1:40,'un',0),1:8,'un',0)
OO{1}
OO{1}{1};
%取行和列%
rc={}
for iii=1:8,
    iii
    for iiii=1:16
    iiii
    [row,column]=find(abs(OO{1,iii}{1,iiii}-1)<=0.0005+eps);
    [rc]=[rc;{row,column}];
     end
end
得到rc矩阵,里面没有符合条件接近于1的数字


这是{1,8}{1,6}得到的数据

这是{1,8}{1,6}得到的数据

O数据.xls

24.5 KB, 下载次数: 2

O的矩阵

新手

20 麦片

财富积分


050


7

主题

40

帖子

0

最佳答案
 楼主| 发表于 2019-1-10 10:46:55 | 显示全部楼层
jingzhaos 发表于 2019-1-9 18:57
你可以将一部分数据放上来看看。

请大神帮忙看看,下午老师就要找我问进展了害怕:(

O数据在附件的表格里。这是经过你上次帮我写的得到OO的cell,然后再循环。
OO=arrayfun(@(k) arrayfun(@(m) O(k,m)./O(k+1:end,:),1:40,'un',0),1:8,'un',0)
OO{1}
OO{1}{1};
%取行和列%
rc={}
for iii=1:8,
    iii
    for iiii=1:16
    iiii
    [row,column]=find(abs(OO{1,iii}{1,iiii}-1)<=0.0005+eps);
    [rc]=[rc;{row,column}];
     end
end
得到rc矩阵,里面没有符合条件接近于1的数字


789.PNG (19.95 KB, 下载次数: 0)

这是{1,8}{1,6}得到的数据

                               
登录/注册后可看大图


                               
登录/注册后可看大图

24.5 KB, 下载次数: 0

O的矩阵


论坛优秀回答者

权威

9153 麦片

财富积分



11

主题

1万

帖子

1994

最佳答案
  • 关注者: 525
发表于 2019-1-10 20:11:04 | 显示全部楼层 |此回复为最佳答案
chem小白 发表于 2019-1-10 10:46
789.PNG (19.95 KB, 下载次数: 0)
这是{1,8}{1,6}得到的数据
O数据.xls
  1. t=1
  2. km=[]
  3. for k=1:8,
  4.    for m=1:16
  5.      [row,column]=find(abs(OO{k}{m}-1)<=0.005+eps)
  6.      if ~isempty(row)
  7.          rc{t}=[row,column]
  8.          t=t+1;
  9.          km=[km;k m];
  10.      end
  11.    end
  12. end
复制代码

新手

20 麦片

财富积分


050


7

主题

40

帖子

0

最佳答案
 楼主| 发表于 2019-1-11 09:23:50 | 显示全部楼层

这次我明白了,还有个问题想请教一下,就是图1中rc显示的是1*39的cell,但是为什么只有16列,
还有图2和图3中,一共8行,每行40个数去除得到的图3应该有40列,可是只有16列是什么意思?是没有显示完整还是什么呢?

39行只有16个

39行只有16个
OO8.PNG
OO16.PNG

论坛优秀回答者

权威

9153 麦片

财富积分



11

主题

1万

帖子

1994

最佳答案
  • 关注者: 525
发表于 2019-1-11 10:53:15 | 显示全部楼层
chem小白 发表于 2019-1-11 09:23
这次我明白了,还有个问题想请教一下,就是图1中rc显示的是1*39的cell,但是为什么只有16列,
还有图2和 ...

这个还真没有注意,实际上是39

新手

20 麦片

财富积分


050


7

主题

40

帖子

0

最佳答案
 楼主| 发表于 2019-1-11 13:38:26 | 显示全部楼层
jingzhaos 发表于 2019-1-11 10:53
这个还真没有注意,实际上是39

我也觉得应该是39呀,但他就显示16 就很奇怪
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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