引用不存在的字段'd'

时间:2017-10-24 14:22:48

标签: matlab

我的mat文件包含40,000行和两列。我必须逐行阅读 然后获取单行中最后一列的值。 以下是我的代码:

       for v = 1:40000

             firstRowB = data.d(v,:)

            if(firstRowB(1,2)==1)
               count1=count1+1;
            end
            if(firstRowB(1,2)==2)
               count2=count2+1;
            end

         end

FirstRowB获取行检查最后一列是等于1还是2,然后将相应计数的值增加1。

但我一直收到这个错误:

Reference to non-existent field 'd'.  

1 个答案:

答案 0 :(得分:0)

你可以使用矢量化(特别是在Matlab中它总是很方便)。利用true为一,false为零的事实,如果你只想数数,你就可以做到:

count1 = sum ( data.d(:, 2) == 1 ) ;
count2 = sum (data.d(:,2) == 2 ) ;
事实上,你可以定义:

getNumberOfElementsInLastColEqualTo = @(numb) sum (data.d(:,end) == numb ) ;

counts =arrayfun( getNumberOfElementsInLastColEqualTo  , [1 2 ] );

希望这有帮助。