如何只取出CELL ARRAY中的数字部分?
本帖最后由 lachance 于 2011-3-11 11:33 编辑如何只取出CELL ARRAY中的数字部分?
例子如下
data = {1 4 'ab' 7; 2 5 'cd' 8; 3 6 'ef' 9};
得到数字部分的MATRIX
1 4 7
2 5 8
3 6 9
另外怎么得到CELL ARRAY的中最后一个CELL的INDEX POSITION,
也就是9所在CELL ARRAY的位置?
>> data = {1 4 'ab' 7; 2 5 'cd' 8; 3 6 'ef' 9};
>> g=cell2mat(reshape(data(cellfun(@(x)isnumeric(x),data)),size(data,1),[]))
g =
1 4 7
2 5 8
3 6 9
>> ind = max(find(cellfun(@(x)isnumeric(x),data)))
ind =
12
>> = find(cellfun(@(x)isnumeric(x),data),1,'last')
indR =
3
indC =
4 教研室主任的水平果真不同一般.
不好意思,水平太差, 有几个地方不懂,请解释一下好吗?
请问
g =.... data(cellfun(@(x)isnumeric(x),data)),size(data,1),[]) 这里是在做啥, cellfun(@(x)... 是做啥的?
这个是什么目的,为什么要这么做? max(find(cellfun(@(x)isnumeric(x),data))),
好像主要还是不懂cellfun(@(x)isnumeric(x),data)) 这个函数的意思.
{:{19}:}{:{19}:}
回复 3 # lachance 的帖子
不清楚, 可以跟我一样, 一步一步执行...
data = {1 4 'ab' 7; 2 5 'cd' 8; 3 6 'ef' 9};
%g=cell2mat(reshape(data(cellfun(@(x)isnumeric(x),data)),size(data,1),[]))
d1=cellfun(@(x)isnumeric(x),data)%Apply function to each cell in cell array
d2=data(d1)
d3=reshape(d2,size(data,1),[])
g=cell2mat(d3)
%ind=max(find(cellfun(@(x)isnumeric(x),data)))
e1=cellfun(@(x)isnumeric(x),data)
e2=find(e1)
ind = max(e2)
% = find(cellfun(@(x)isnumeric(x),data),1,'last')
= find(d1,1,'last') 非常感谢 两位的相助{:3_53:}
页:
[1]