【发布时间】:2017-02-10 11:40:03
【问题描述】:
我想根据原始data 矩阵的某些列的条件选择一个子矩阵x7992。具体来说,原始矩阵是 23166×9,遵循原始高斯码
x7992 =selif(data,data[.,col_coh].==0 .and data[.,col_year].<=1992);
我用matlab重写了这个
x7992 = data(data(:,col_coh)==0 & data(:,col_year)<=1992);
col_coh,col_year 是预定义的列号。
但是,上面的代码行并没有给我一个子矩阵,而是只给了我一行(23166×1),这不是我想要的(也不是基于此条件的真实结果)。那么如何解决呢?谢谢。
--- 更新-----
data 矩阵就像(我省略了其他列,因为只有前 3 个列与选择相关),第一列是个人的 id
1 1979 0
1 1980 0
1 1981 1
1 1982 0
1 1983 1
2 1990 0
2 1991 0
2 1992 0
2 1993 1
3 1985 0
3 1986 0
3 1987 0
根据条件,我想要的是数据中的子矩阵,它不包括第二列中 value>1992 和第三列中 value=1 的那些行
【问题讨论】:
-
举一个
data矩阵的例子和预期的输出 -
嗨,@Sardar_Usama,我添加了一些关于我的数据的更多详细信息
标签: matlab matrix data-manipulation