方程和括号中的点符号

时间:2014-01-14 09:19:04

标签: matlab equation brackets

我想计算存储在变量a:

中的表达式的结果
a = ([b.c]<10);

这个表达方式会怎样?这有点像划分吗?

3 个答案:

答案 0 :(得分:2)

我猜bstruct,其中的字段名为c。这意味着b.c是一个变量,就像任何其他变量一样。 输入whos b以查看此假设是否正确。

如果这是正确的,括号[]是不必要的,如[x] == x编辑:正如Luis指出的那样,如果b是一个结构数组,则不是这样。看看他的回答!

a = x < 10 

是一个逻辑语句,每1 x(k) < 100x(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。