2013-05-03 10 views
0

Я знаю, что мой вопрос может показаться похожим на других, уже опубликованных. Тем не менее, я просматривал ответы на явно близкие вопросы, но все равно не мог делать то, что хочу. Поэтому я снова спрашиваю у меня.Matlab - Как читать значения из текстового файла?

У меня есть текстовый файл (data.txt) этого типа.

StudentA 10 

StudentB 5 

StudentC 3 
... 

Данные в одной строке разделены вкладкой.

Как я могу прочитать только значения (это означает только числа 10, 5, 3 и т. Д.) В Matlab и игнорировать StudentA, StudentB и т. Д.?

Я сделал следующее.

fid=fopen('grades.txt','r'); 

m=fscanf(fid, '%d'); 

Но что показал Matlab был:

m = 

    [] 

ответ

3

Как насчет

fid = fopen('grades.txt','r'); 
A = textscan(fid,'%s %d','Delimiter','\r\n'); 
A = A{1}; 

Он должен работать в вашем случае.

+0

Чтобы игнорировать столбец «students», вы можете указать '% * s' вместо'% s'. –

+0

Привет, правильный код: A = textscan (fid, '% * s% d', 'Delimiter') ". Большое спасибо за вашу помощь. – user2346332

2

Посмотрите на this question, которая занимается с simmilar ситуации. В вопросе формат файл:

1 2 3 sometext 
4 5 6 somemoretext 
etc... 

Предложено решение использует textread для чтения и лексем элементов, а затем преобразует их обратно в матрицу с некоторой индексацией логикой. Это также должно работать для вашего дела.

+0

Почему бы не отметить этот вопрос как дубликат? –

+0

@EitanT * shrugs * Я мог бы сделать, но fpe дал ответ, который, с другой стороны, я думаю, что лучше, и требует меньше faff, чем тот, с которым я связан. – Alan

+0

Подумайте об этом, вы правы. Я бы по-прежнему отмечал это как дубликат, чтобы помочь будущим пользователям просматривать эти вопросы. –

Смежные вопросы