Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.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_Logical Operators - Fatal编程技术网

阵列的Matlab逻辑运算

阵列的Matlab逻辑运算,matlab,matrix,logical-operators,Matlab,Matrix,Logical Operators,我的问题应该很简单,但我没法解决。 我想通过使用逻辑运算符,然后只存储那些行,从矩阵中只获取相关行。 我习惯于在其他语言中使用for循环,但是在Matlab中,一次在整个数组或矩阵上运行它应该更快 这是一个我认为应该有效的例子,但我所有类似的尝试都会产生不同的错误,我不确定该怎么办 Mrelevant = Matrix(Matrix.no_refs > 100) 编辑:矩阵实际上是一个有标题的表,我只想保留满足某些要求的行,比如标题为“no_refs”的列中的值应该大于100 我希望这足

我的问题应该很简单,但我没法解决。 我想通过使用逻辑运算符,然后只存储那些行,从矩阵中只获取相关行。 我习惯于在其他语言中使用for循环,但是在Matlab中,一次在整个数组或矩阵上运行它应该更快

这是一个我认为应该有效的例子,但我所有类似的尝试都会产生不同的错误,我不确定该怎么办

Mrelevant = Matrix(Matrix.no_refs > 100)
编辑:矩阵实际上是一个有标题的表,我只想保留满足某些要求的行,比如标题为“no_refs”的列中的值应该大于100


我希望这足够清楚,谢谢

这里显示的语法应该可以使用,尽管我不知道
no_refs
的目的是什么。正确的语法是:

Mrelevant = matrixName(matrixName > 100)
但是,这将创建一列,其中包含满足条件的值。比如说,

testMatrix =
0.8147    0.0975    0.1576    0.1419    0.6557
0.9058    0.2785    0.9706    0.4218    0.0357
0.1270    0.5469    0.9572    0.9157    0.8491
0.9134    0.9575    0.4854    0.7922    0.9340
0.6324    0.9649    0.8003    0.9595    0.6787

relevant = testMatrix(testMatrix > .5)

relevant =
0.8147
0.9058
0.9134
0.6324
0.5469
0.9575
0.9649
0.9706
0.9572
0.8003
0.9157
0.7922
0.9595
0.6557
0.8491
0.9340
0.6787
然而,当你说

通过使用逻辑运算符,然后存储 那些排

您的意思是只存储行中所有元素都满足条件的行吗?在这种情况下,语法将是

 relevant = testMatrix
 % Delete all rows that don't meet the requirement
 relevant(any(relevant<=100, 2),:) = [];
relevant=testMatrix
%删除所有不符合要求的行

相关(any)(relevant既然您指定的
矩阵
是a,答案就很清楚了。您忘记了一个额外的索引参数,该参数包含您所选择的给定行的所有变量:

Mrelevant = Matrix(Matrix.no_refs > 100, :);

这将为您提供一个新的表
mrelevat
,其中只包括
Matrix
no\u refs
变量大于100的行。有关按行和/或变量访问
表中数据的所有方法,请参见。

请参见:显然
Matrix
不是一个矩阵,而是某种类型的结构。请添加代码以创建示例
矩阵
,以及您期望的此数据的输出。请参见下面的一个示例:我正在获取矩阵索引超出了删除范围。是否有任何线索可以解释为什么会出现这种情况?可能是因为特定矩阵的格式不正确。如果您可以将命令行或脚本发布到出现错误,我可以帮助进一步调试。