我想计算存储在变量a:
中的表达式的结果a = ([b.c]<10);
这个表达方式会怎样?这有点像划分吗?
答案 0 :(得分:2)
我猜b
是struct,其中的字段名为c
。这意味着b.c
是一个变量,就像任何其他变量一样。
输入whos b
以查看此假设是否正确。
如果这是正确的,括号[]
是不必要的,如[x] == x
。 编辑:正如Luis指出的那样,如果b
是一个结构数组,则不是这样。看看他的回答!
a = x < 10
是一个逻辑语句,每1
x(k) < 10
和0
每x(k) >= 10
都会获得b.c = [1 5 10 4 12];
a = ([b.c]<10)
b.c =
1 5 10 4 12
a =
1 1 0 1 0
。
{{1}}
答案 1 :(得分:1)
在最常见的情况下,b
可能是结构数组。例如,让我们定义
>> b(1).c = 5;
>> b(2).c = 7;
>> b(3).c = 11;
在这种情况下,b.c
会在数组中所有结构的c
字段中为您提供comma-separated list个值:
>> b.c
ans =
5
ans =
7
ans =
11
[b.c]
只是concatenates将逗号分隔的列表转换为向量:
>> [b.c]
ans =
5 7 11
最后,a = ([b.c]<10);
在a
中存储10
对>> a=([b.c]<10)
a =
1 1 0
的{{3}}的结果:
>> a=[b.c]<10
a =
1 1 0
顺便说一句,不需要(圆形)括号:
{{1}}
答案 2 :(得分:0)
请参阅[]
的{{3}}:
括号用于形成向量和矩阵。 [6.9 9.64 sqrt(-1)]是 由空格分隔的三个元素的向量。 [6.9,9.64,i]是 同一件事情。 [1 + j 2-j 3]和[1 + j 2 -j 3]不相同。该 第一个有三个元素,第二个有五个元素。
现在看.
的{{3}}。
这意味着您将得到一个1和0的向量,其中1将出现在每个大于10的位置,否则为0。