【发布时间】:2018-04-28 03:59:21
【问题描述】:
我看到人们将==、~=、>、< 放在矩阵后面的括号中,以获取其条目,如下所示:
b =
1 4 7
2 5 8
3 6 9
>> b == [1 2 3]
ans =
3×3 logical array
1 0 0
0 0 0
0 0 0
>> b == [1 4 7]
ans =
3×3 logical array
1 1 1
0 0 0
0 0 0
>> b == [1 4 5]
ans =
3×3 logical array
1 1 0
0 0 0
0 0 0
>> b == [1 5 4]
ans =
3×3 logical array
1 0 0
0 1 0
0 0 0
>> a
a =
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
>> a(:, b == [1 4 5])
ans =
1 4
1 4
1 4
>> a(:, b == [1 5 4])
ans =
1 5
1 5
1 5
>> b
b =
1 4 7
2 5 8
3 6 9
>> b > [1 3 2]
ans =
3×3 logical array
0 1 1
1 1 1
1 1 1
但是,我不知道为什么这些会起作用。关于这种用法的任何解释? (我的英文不好,无法更好地描述这个问题,希望任何人都可以编辑这个问题以使其更易于理解?提前谢谢!)
【问题讨论】:
-
关于隐式或算术扩展的更详细说明:blogs.mathworks.com/loren/2016/10/24/…
-
自 R2016b 以来对 M 语言的逻辑且非常方便的补充。恕我直言,它不应该被包括在内。我知道关于这个话题已经讨论了很多,所以我们不要在这里重做这些讨论,但是正如您所指出的,与线性代数其余部分中的符号不兼容确实令人困惑。
标签: matlab matrix syntax relational-operators