使用Matlab将字符串写入excel?

Ben*_*sen 3 string excel matlab

我正在从Matlab写一个字符串的单元格数组到Excel中.我有一个单元数组数据{},我试图写入Matlab.因为strcmp经过3次,它应该写出三个很长的字符串才能表现出色.目前它只是将最后一组字符串写入excel.data = {{1x25} {1x35} {1x20}}看起来像这样.此外,我希望能够将数据写入三个单元格,而不是复制到与单元格数组元素中的行一样多的单元格.这可以与Matlab一起表现出色吗?

done = {}

for i = 1:3
   q = strcmp(x_gene_ID{i},locus_tags{i});
   if q ==1
       done{end+1} = data{i};
       disp(done);

   end


end


w = xlswrite('data.xlsx',done','E2:E400');
Run Code Online (Sandbox Code Playgroud)

好吧,这有助于我知道单元阵列大于3个单元格范围.我试图让Nx1单元阵列适合Excel中的一个单元格,因为它需要与相邻单元格中的信息相对应.这有可能吗?

A     B      C        D                   E  
w   Rv0146  na  Rv0039c (i want the cell array1 to go here)
s   Rv0156  na  Rv0029c (i want the cell array2 to go here)
s   Rv0156  na  Rv0029c (i want the cell array2 to go here)
Run Code Online (Sandbox Code Playgroud)

这是我在excel中要做的事情

gno*_*ice 5

更新的答案:

如果我理解正确,那么您的变量似乎data是一个单元格数组,其中每个单元格包含一个1乘N(或者可能是N-by-1)的字符串数组.如果您想尝试将每个字符串单元格数组合到电子表格的一个单元格中,则需要先将每个数组格式化为单个长字符串.

下面是一个示例,说明如何通过将字符串的单元格数组连接在一起,以及它们之间的换行符来格式化字符串的单元格数组:

data = {{'hello' 'hi' 'hey'} ...              %# Sample cell array of 1-by-N
        {'world' 'earth' 'everyone'} ...      %#   cell arrays of strings
        {'blah' 'blah'}};
data = cellfun(@(x) {strcat(x,{char(10)})},data);  %# Add newline characters
                                                   %#   to the string ends
data = cellfun(@(x) {deblank([x{:}])},data);  %# Concatenate the inner cells and
                                              %#   remove the trailing newlines 
Run Code Online (Sandbox Code Playgroud)

现在每个字符串的单元格数组只是一个长字符串,每个字符串都可以写入Excel电子表格的单元格,如下所示:

xlswrite('data.xls',data(:),'Sheet1','E2');  %# Write the data to cells E2 to E4
Run Code Online (Sandbox Code Playgroud)

以下是生成的电子表格的样子:

替代文字

如果您使用空格' '而不是换行符,则以下是电子表格的外观(调整行和列宽度后):

替代文字

上面代码中使用的函数:CELLFUN,STRCAT,CHAR,DEBLANK,XLSWRITE.

  • 我还建议使用`ExcelCol`来查找正确的列标题.您可以从FileExchange下载它:http://www.mathworks.com/matlabcentral/fileexchange/27182-excel-column-conversion它使得处理Excel变得更加容易. (2认同)