我的状态文件格式如下:
' bla bla
1 1 1 9 2 11 0.0100 0.0100 0.01000
1 2 1 2 1 3 0.503 0.503 0.1709
1 3 1 2 1 3 0.759 0.759 0.2563
1 4 1 3 2 5 1.00 1.00 0.2411
2 1 1 0 1 1 2.00 1.00 1.000
3 1 1 10 1 11 2.20 0.200 0.2000
3 2 1 13 2 15 2.40 0.400 0.200
4 1 1 10 1 11 2.20 0.200 0.2000
4 2 1 10 1 11 2.20 0.200 0.2000
4 3 1 10 1 11 2.20 0.200 0.2000
blat blah'
现在我怎么知道第一列中出现了1,2,3等多少次?
上述.sta
文件的答案为[4 1 2](即4是第1列中出现1的次数)。
答案 0 :(得分:0)
轻松,你可以直接看看它们。例如,如果您将.sta
文件读入名为data
的变量:
sum(data(:, 1) == 1)
1. data(:, 1) look at all of the first column
2. (1.) == 1 create a Boolean list of whether they equal to one
3. sum(2.) sum up all the trues to find the total number of ones.
这将为您提供第一列中1s
的数量。
如果您有兴趣对只有1s,2s等矩阵的其余部分执行操作,您可以这样做:
data_only_ones = data(data(:, 1) == 1, 2:end);
这将为您提供第一列为1的矩阵的其余部分。即。为你的例子:
1 1 9 2 11 0.0100 0.0100 0.01000
2 1 2 1 3 0.503 0.503 0.1709
3 1 2 1 3 0.759 0.759 0.2563
4 1 3 2 5 1.00 1.00 0.2411
要记住的是,matlabs数组索引是 magic ,你基本上可以做任何事情。