2014-02-20 37 views
0

我正在阅读一些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)); 

回答

1

试试这个(但想到x为您index_struct.data_incl :):

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

ans = 

    3 

这只是数起,但等于1

x向量元素的数量,因为x==1计算结果为[1 0 0 0 1 1]和然后使用logical indexingx(x==1)评估为[1 1 1],其长度为3;

它本可以写得更简单sum(index_struct.data_incl == 1)

0

如果我不看代码,我只能猜测......,但我想这index_struc.data_incl应该是一个向量,长度为n这意味着你必须一直读到n文件的选项,所有的值数组的应该是0在开始时,当你读一个文件,你在矢量index_struc.data_incl从0更改相应的位置为1。一段时间后,你可以看到你有多少这些文件的读取使用

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

因为它会给你的号码向量中的index_struct.data_incl