2011-06-17 15 views
2

私は遺伝子の名前をExcelに書きたいと思っていますが、このコードを実行するとmatlabは何も書きません。満たされたいセルは空白のままです。私は私のコードで何が欠けているのか理解していないようです。 namesは文字列名のセル配列です。Matlabから文字列のセル配列をExcelに書き込む?

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 

答えて

3

私はあなたのエラーの可能性が高いソースは、あなたがx.textdataは、文字列のセル配列(table in the IMPORTDATA documentation for the output argument Aで説明したように)あることを行っていることを考慮していないということであると信じています。あなたはそのようnamesにデータを割り当てる場合:

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

をあなたが実際に内の別のセル配列をセル配列を置いている、とXLSWRITEは明らかに、ネストされたセル配列を扱うことができない(すなわち、それはのセル要素のための空白のフィールドを出力セル配列を含む入力)。あなたは代わりにそうように、セルに内容x.textdataにアクセスするには、中括弧ではなく、括弧を使用する必要があります。

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