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

请教一个相似提取数据的问题

[复制链接]
发表于 2010-12-23 11:03:43 | 显示全部楼层 |阅读模式 来自 江西赣州
本帖最后由 xyq001303 于 2010-12-23 11:11 编辑

下面是我的前期代码
B={B1,B2,B3,B4,B5,B6,B7,B8,B9,B10,B11,B12,B13,B14,B15,B16,B17,B18,B19,B20,B21,B22,B23,B24,B25,B26,B27,B28,B29,B30,B31,B32,B33,B34,B35,B36,B37,B38,B39,B40,B41,B42,B43,B44,B45,B46,B47,B48,B49,B50,B51,B52};
for j=1:52
c=corrcoef(A,B{j});
C(1,j)=c(1,2)
end
然后我想看C这个行向量里面哪个数跟1最接近,就得到这个数对应的在C矩阵中的序号,比如第32个数字跟1最接近,那么就能得出d=32,请问怎么写?谢谢
其中A和各个B矩阵都是大小一样的矩阵
发表于 2010-12-23 11:12:58 | 显示全部楼层 来自 北京
Simdroid开发平台
本帖最后由 rocwoods 于 2010-12-23 11:16 编辑

看你在MATLAB sky还有中文论坛都发帖了。都给你回了,想要什么结果都各自给你列出来了

  1. [~,ind] = min(abs(C-1));
  2. B{ind}
复制代码

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2010-12-23 16:06:37 | 显示全部楼层 来自 河北廊坊
1# xyq001303
对于大量重复的数据,可以用批量处理的办法,给你一个例子,希望能给你提供一些思路

  1. clear;clc;close all
  2. N=52;
  3. A=rand(2);  % 创建A矩阵
  4. arrayfun(@(x)assignin('base', sprintf('B%d',x), rand(2)),1:N); % 创建B1--B52
  5. B=arrayfun(@(x)evalin('base',['B',int2str(x)]),1:N,'UniformOutput',false);% 创建单元数组
  6. C=arrayfun(@(x)feval(@(y)y(2),corrcoef(A,B{x})),1:N);% 求出相关系数
  7. res=B{C==max(C)};
复制代码

评分

1

查看全部评分

回复 不支持

使用道具 举报

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

本版积分规则

Simapps系列直播

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

GMT+8, 2024-10-5 05:18 , Processed in 0.039941 second(s), 18 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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