Я работаю над назначением, где мне нужно прочитать текстовый файл с разделителями табуляции, и мой вывод должен быть структурой matlab.Возможно ли, чтобы поле структуры содержало матрицу?
Содержимое файла выглядит следующим образом (это немного грязно, но вы получаете изображение). Фактический файл содержит 500 генов (строки, начиная с аналит 1) и 204 выборок (столбцы, начиная с А2)
#1.2
500 204
Name Desc A2 B2 C2 D2 E2 F2 G2 H2
Analyte 1 Analyte 1 978 903 1060 786 736 649 657 733.5
Analyte 2 Analyte 2 995 921 995.5 840 864.5 757 739 852
Analyte 3 Analyte 3 1445.5 1556.5 1579 1147.5 1249 1069.5 1048 1235
Analyte 4 Analyte 4 1550 1371 1449 1127 1196 1337 1167 1359
Analyte 5 Analyte 5 2074 1776 1960 1653 1544 1464 1338 1706
Analyte 6 Analyte 6 2667 2416.5 2601 2257 2258 2144 2173.5 2348
Analyte 7 Analyte 7 3381.5 3013.5 3353 3099.5 2763 2692 2774 2995
Мой код выглядит следующим образом:
fid = fopen('gene_expr_500x204.gct', 'r');%Open the given file
% Skip the first line and determine the number or rows and number of samples
dims = textscan(fid, '%d', 2, 'HeaderLines', 1);
ncols = dims{1}(2);
% Now read the variable names
varnames = textscan(fid, '%s', 2 + ncols);
varnames = varnames{1};
% Now create the format spec for your data (2 strings and the rest floats)
spec = ['%s%s', repmat('%f', [1 ncols])];
% Read in all of the data using this custom format specifier. The delimiter will be a tab
data = textscan(fid, spec, 'Delimiter', '\t');
% Place the data into a struct where the variable names are the fieldnames
ge = data{3:ncols+2}
S = struct('gn', data{1}, 'gd', data{2}, 'sid', {varnames});
часть о ге это мой но это не работает. Любая помощь будет очень оценена, спасибо заранее!
Еще раз спасибо Suever! Он отлично работал. Последующий вопрос, могу ли я теперь использовать эти поля для построения графиков/графиков? – embryo3699
Да, вы можете получить доступ к любому полю с помощью точечной нотации: 'plot (S.ge (:, 1))' и т. Д. – Suever