matlab如何提取第一列中含有指定内容的行

如何利用matlab提取第一列中含有数字5的行,
如何利用matlab提取第一列中含有数字5 或者 6的行

x=A(i,j);
就是提取矩阵A的第i行,第j列的元素
注:提取元素是MATLAB中最常用的操作
x(1,:) 代表提取第1行,从第1列到最后一列;
x(:,1) 代表提取第1列,从第1行到最后一行;
其他的还有提取最大值最小值等操作,可以多看下help.
或者
提取矩阵A的第一行,第二列,赋给a
a=A(1,2);
如果光要取第一行
a=A(1,:);
如果光要取第二列
a=A(:,2);
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-09
>> A = [5 6 8 14;6 8 14 nan;5 8 nan nan;5 nan nan nan;
5 8 nan nan;8 14 nan nan;4 8 5 nan]
A =
5 6 8 14
6 8 14 NaN
5 8 NaN NaN
5 NaN NaN NaN
5 8 NaN NaN
8 14 NaN NaN
4 8 5 NaN

>> F = find(A(:,1)==5) % 寻找第 1 列有 5 的行索引
F =
1
3
4
5

>> R = A(F,:) % 所有第 1 列含 5 的行
R =
5 6 8 14
5 8 NaN NaN
5 NaN NaN NaN
5 8 NaN NaN追问

如果第一列的行数特别多 一万多条怎么办啊?并且下面的才是真实的数据,特别繁杂,那该怎么办呢?有没有更好的方法?

追答

fn = 'my_data.xls'; % 原始数据文件(.xls)
[num,txt,raw] = xlsread(fn); % 读入Matlab
d1 = [raw(:,1)]; % 读出第一列数据
R1 = arrayfun(@(r) ismember([5],d1{r}),1:size(d1)); % 处理含数值 5 的行
R2 = arrayfun(@(r) ismember('5',d1{r}),1:size(d1)); % 处理含字符'5' 的行
R = R1+R2; % 合并逻辑结果
rr = find(R==1); % 找出符合条件的行索引
RR = raw(rr,:) % 找到的结果行(元胞数组)

本回答被提问者采纳
相似回答