Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在matlab中根据列属性值选择特定行?_Matlab_Matrix - Fatal编程技术网

如何在matlab中根据列属性值选择特定行?

如何在matlab中根据列属性值选择特定行?,matlab,matrix,Matlab,Matrix,我有[句子交叉词]逻辑矩阵,其中value=1表示该句子中有一个词,而0表示缺少,如下所示: 0 0 1 1 1 0 1 0 0 0 0 1 1 1 0 0 row = 1 2 4 我已经做了一些处理并选择了特定的单词,即2和3 result = 2 3 现在,我只想选择单词2和3的值等于1的行,并按如下方式返回该行的行号: 0 0 1 1 1 0 1 0 0 0 0 1 1 1 0 0 row = 1 2 4 对于结果变量中的每个单词都应该这样做-谢谢。假设A作为输入二进

我有
[句子交叉词]
逻辑矩阵,其中
value=1
表示该句子中有一个词,而
0
表示缺少,如下所示:

0 0 1 1

1 0 1 0

0 0 0 1

1 1 0 0
row = 1 2 4
我已经做了一些处理并选择了特定的单词,即
2和3

result = 2 3
现在,我只想选择单词
2和3
的值
等于1的行,并按如下方式返回该行的行号:

0 0 1 1

1 0 1 0

0 0 0 1

1 1 0 0
row = 1 2 4

对于结果变量中的每个单词都应该这样做-谢谢。

假设A作为输入二进制数组,那么您是否正在寻找类似的内容-

result = [2 3]; %// select words by IDs
row = find(any(A(:,result),2))
样本运行-

A =
     0     0     1     1
     1     0     1     0
     0     0     0     1
     1     1     0     0
row =
     1
     2
     4

为了好玩,您也可以使用它作为替代方法-

row = find(A(:,result)*ones(numel(result),1))

假设A作为输入二进制数组,您正在寻找类似的东西-

result = [2 3]; %// select words by IDs
row = find(any(A(:,result),2))
样本运行-

A =
     0     0     1     1
     1     0     1     0
     0     0     0     1
     1     1     0     0
row =
     1
     2
     4

为了好玩,您也可以使用它作为替代方法-

row = find(A(:,result)*ones(numel(result),1))

首先选择要提取的列,并创建一个将所有这些列连接在一起的矩阵。接下来,结合使用和操作柱,以获得所需位置

因此,考虑到存储在
X
中的逻辑矩阵,请执行以下操作:

ind = [2 3];
matr = X(:,ind);
vals = find(any(matr, 2));
通过以上示例,我们得到:

vals =

     1
     2
     4

首先选择要提取的列,并创建一个将所有这些列连接在一起的矩阵。接下来,结合使用和操作柱,以获得所需位置

因此,考虑到存储在
X
中的逻辑矩阵,请执行以下操作:

ind = [2 3];
matr = X(:,ind);
vals = find(any(matr, 2));
通过以上示例,我们得到:

vals =

     1
     2
     4

哈哈哈。相隔36秒。美好的很高兴看到我的想法和你一样!哈哈哈。相隔36秒。美好的很高兴看到我的想法和你一样@迪瓦卡-谢谢:)+我也祝你。。。我不知道为什么会有反对票。我和你在同一时间也在研究这个答案。我讨厌人们否决投票,他们不给出理由。@rayryeng感谢你的回答,它是有效的,想问你是否有一种方法可以传递一个变量,例如:
result
,它会自动选择要选择的列,比如
ind=result而不是给出
ind=[23]因为在我的真实场景中,选择了大量列只需使用
ind=result。只要
result
是一个列向量,那么上面的代码就可以工作。我刚刚做了
ind=[23]以配合您的示例。@Divakar-谢谢:)+我也祝你。。。我不知道为什么会有反对票。我和你在同一时间也在研究这个答案。我讨厌人们否决投票,他们不给出理由。@rayryeng感谢你的回答,它是有效的,想问你是否有一种方法可以传递一个变量,例如:
result
,它会自动选择要选择的列,比如
ind=result而不是给出
ind=[23]因为在我的真实场景中,选择了大量列只需使用
ind=result。只要
result
是一个列向量,那么上面的代码就可以工作。我刚刚做了
ind=[23]以配合您的示例。