【问题标题】:MATLAB syntax lengthMATLAB 语法长度
【发布时间】:2014-02-21 00:49:17
【问题描述】:

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

【问题讨论】:

    标签: matlab


    【解决方案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)

    【讨论】:

      【解决方案2】:

      如果我没有看到代码,我只能猜测...,但我猜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_incl1的数量。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-10-04
        • 2011-01-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多