MATLAB语法长度

时间:2014-02-20 16:36:00

标签: matlab

我正在读一些试图拿起它的MATLAB。下面这行可能很简单,但我不明白。

我理解长度会给我一个向量的长度,在本例中是一个向量,它是结构的一部分,index_struct.data_incl。

index_stuct.data_incl在运行时的实际值只是1.令我困惑的是括号内的内容,即(index_struct.data_incl == 1)?我无法弄清楚这条线试图做的事情尽可能简单!

int_var                 = length(index_struct.data_incl(index_struct.data_incl == 1));

2 个答案:

答案 0 :(得分:1)

试试这个(但将x视为您的index_struct.data_incl :):

x = [1 4 5 13 1 1]
length(x(x==1))

ans =

     3

它只计算x向量中等于1

的元素数量

因为x==1评估为[1 0 0 0 1 1],然后使用logical indexing x(x==1)评估为[1 1 1],其长度为3;

它可以更简单地写成sum(index_struct.data_incl == 1)

答案 1 :(得分:0)

如果我看不到我只能猜测的代码......,但我想index_struc.data_incl应该是一个向量,长度为n,这意味着你可以选择阅读{{1文件,并且数组的所有值在开头应该是n,当你读取文件时,你将向量0中的相应位置从0更改为1.经过一段时间你可以看到你使用

读取了多少这些文件
index_struc.data_incl

因为它会在向量int_var = length(index_struct.data_incl(index_struct.data_incl == 1)); 中为您提供1的数量。