Записывает массив строк в Excel из Matlab? - PullRequest
2 голосов
/ 17 июня 2011

Я хочу записать имена генов в excel, но когда я запускаю этот код, matlab ничего не записывает в excel.Ячейки, которые я хочу заполнить, оставлены пустыми.Я не могу понять, что мне не хватает в моем коде.names - это массив ячеек с именами строк.

function nameWriter()

x = importdata('mitominerratmitochondrialoutermembraneproteins');

names = {};
n = length(x.textdata);
counter = 0;
for i = 1:n
    if  strncmp(x.textdata(i),'>', 1) ==1
        names{end+1} = x.textdata(i);
        counter = counter +1;
    end
end

xlswrite('aacount2.xls', names, 'B1:CB1');
end

1 Ответ

3 голосов
/ 18 июня 2011

Я полагаю, что вероятным источником вашей ошибки является то, что вы не принимаете во внимание, что x.textdata будет представлять собой массив строк (как описано в таблице в документации IMPORTDATA для выходного аргумента A). Когда вы присваиваете данные names примерно так:

names{end+1} = x.textdata(i);

Вы фактически размещаете массив ячеек внутри другого массива ячеек, и XLSWRITE , очевидно, не может обрабатывать вложенные массивы ячеек (т. Е. Он выводит пустые поля для элементов ячеек ввода, которые содержат клеточные массивы). Вместо этого вы должны использовать фигурные скобки, а не круглые скобки, чтобы получить доступ к ячейке содержимое из x.textdata, например:

names{end+1} = x.textdata{i};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...