我的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'.
答案 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 ] );
希望这有帮助。