使用Matlab将字符串写入excel?

时间:2010-06-23 19:52:15

标签: excel matlab string

我正在从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');

好的,这有助于我知道单元阵列大于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)

以下是我在excel中要做的事情

1 个答案:

答案 0 :(得分: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 

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

xlswrite('data.xls',data(:),'Sheet1','E2');  %# Write the data to cells E2 to E4

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

alt text

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

alt text

上述代码中使用的函数:CELLFUNSTRCATCHARDEBLANKXLSWRITE