我正在读一些试图拿起它的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));
答案 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
的数量。