声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1555|回复: 7

[编程技巧] 查找元胞矩阵中特定矩阵的算法求助!

[复制链接]
发表于 2009-2-3 12:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
请问各位,我想找出元胞矩阵中某一列里的特定矩阵,这句代码应该怎么改呢?O(∩_∩)O谢谢~~~~~

[0 0] [0 0]
[0 0] [0 0]
[0 0] [0 0]
[1 0] [0 0]
[0 0] [0 0]
[1 1] [0 0]
[0 0] [0 0]
[0 0] [0 0]
[0 0] [0 0]
[0 0] [1 0]


find(cellArray{:,1}==[1,1]);
回复
分享到:

使用道具 举报

发表于 2009-2-3 22:10 | 显示全部楼层
  1. [row,col] = find(cellfun(@(x) isequal(x,[1 1]),cellArray));
复制代码

评分

1

查看全部评分

发表于 2009-2-3 23:34 | 显示全部楼层
试了! v6.5会报错! 火大刚搅个2006a!
但试了怎麽都是Empty matrix!
累了! 明早再试!
 楼主| 发表于 2009-2-4 00:31 | 显示全部楼层
非常感谢楼上两位的帮忙,二楼的方法的确可以实现整个元胞矩阵中[1,1]的查找,返回行列坐标,但是我尝试了一下却没有办法实现某一列或某一行中[1,1]的查找,还请帮忙解答,O(∩_∩)O谢谢~~~~
然后,由于我Matlab的学识有限,二楼的代码的实现原理我并不是很理解,还请解释一下,谢谢了~~~
发表于 2009-2-4 10:59 | 显示全部楼层
不好意思! 个人几十年来一直使用旧版(v5.6), 新版功能一直未学习, 真汗颜!
二楼的方法个人还未试成功, 仅提供一笨方法共参考!
aa={[0 0] [0 0]; [0 0] [0 0]; [0 0] [0 0]; [1 0] [0 0]; [0 0] [0 0]; [1 1] [0 0]; [0 0] [0 0]; [0 0] [0 0]; [0 0] [0 0]; [0 0] [1 0]};
[m,n]=size(aa); row=[]; col=[];
for i=1:m, for j=1:n,
   if isequal( cell2mat(aa(i,j)), [1,1] ), row=[row;i]; col=[col;j]; end;
end; end
[row,col]

[ 本帖最后由 ChaChing 于 2009-2-4 11:00 编辑 ]
发表于 2009-2-4 18:10 | 显示全部楼层
比如你想找元胞矩阵cellArray第一列等于[1,1]矩阵的索引,如下方法即可
  1. [row,col] = find(cellfun(@(x) isequal(x,[1 1]),cellArray(:,1)));
复制代码
主要就是cellfun函数的使用,第一个输入参量是函数句柄H,第二个参量是元胞C。整个函数的意思是将H代表的函数作用于C的每个元素,返回一个和C维数一样的数组D,D的每个元素就是函数H作用于C相应位置上元素后的结果。
譬如C是m*n的元胞矩阵,D = cellfun(H,C)功能上等价于如下代码:

  1. D = zeros(m,n);
  2. for i = 1:m
  3. for j = 1:n
  4. D(i,j) = H(C{i,j});
  5. end
  6. end
复制代码
具体可以查阅cellfun的函数帮助文档。v7以后的版本都有。

[ 本帖最后由 rocwoods 于 2009-2-4 18:12 编辑 ]

评分

1

查看全部评分

发表于 2009-2-4 23:42 | 显示全部楼层

回复 6楼 rocwoods 的帖子

患了一个严重的错误(cell输入), 所以二楼的方法没试成功!
现OK了! 谢谢大牛的回覆!

[ 本帖最后由 ChaChing 于 2009-2-6 08:10 编辑 ]
 楼主| 发表于 2009-2-6 02:14 | 显示全部楼层
(⊙o⊙)哦~~~~明白了,谢谢两位的帮忙了!!!!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-2 19:58 , Processed in 0.086728 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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