【发布时间】:2019-02-06 12:22:57
【问题描述】:
我在制表符分隔的 .tab 文件中混合了数据。第一列是(大)数字,第二列和第三列是(或可以被视为)文本。下面是一个例子,
9984847435 cheese 0
9984847438 start 100
9984849435 orange 100
9984847635 milk 0
9984847435 coffee 1
9984847835 three_blind_mice 1
9984847435 end 1
10000000123 juice 45
10000000124 start point
10000000223 ramen_y cattle_ranch_65.jpg
现在我想将这些数据导入 matlab。然后我想按第 1 列对表格进行排序。然后我想搜索这些数据,例如返回第 2 列中有“开始”的行号(或行/列位置)。
我使用 readtable 将数据导入为表格。
data = readtable ('sheet.tab', 'Format', '%u64%s%s', 'ReadVariableNames',false);
dataSorted = sortrows(data,1);
%Get row numbers for start
entry = 1;
for i = 1 : height(dataSorted)
if dataSorted(i,2) = 'start'
rowNumbers (entry,1) = i
entry+1
end
end
我希望得到一个矩阵,列出第二列中有“开始”的行号。所以对于上面的例子,
rowNumbers =
2
9
相反,我得到“等号左侧的表达式不是赋值的有效目标。”
【问题讨论】:
-
我的错,这是一个错字。我的意思是一个单列矩阵。我只是一个初学者。数据确实是制表符分隔的,我已经编辑了我的帖子。
标签: matlab