【问题标题】:Writing strings into excel using Matlab?使用Matlab将字符串写入excel?
【发布时间】:2010-06-23 19:52:15
【问题描述】:

我正在从 Matlab 将一个字符串元胞数组写入 Excel。我有一个单元格数组 data{},我正在尝试将其写入 Matlab。由于 strcmp 通过了 3 次,因此它应该编写三个大长度的字符串来表现出色。目前它只是将最后一组字符串写入excel。数据 = { {1x25} {1x35} {1x20} } 看起来像这样。此外,我希望能够将数据写入三个单元格,而不是复制到与单元格数组元素中的行一样多的单元格中。这可以用matlab做excel吗?

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 中做的事情

【问题讨论】:

  • data 中的每个单元格似乎都是一个字符串单元格数组。我不认为 XLSWRITE 将允许您将整个字符串单元格数组放入电子表格的 one 单元格中。它将尝试将数组的每个单元格放入电子表格自己的单元格中。
  • 您会建议使用其他语言还是您认为这是 Matlab 无法解决的问题?

标签: excel matlab string


【解决方案1】:

更新答案:

如果我理解正确,您的变量 data 似乎是一个元胞数组,其中每个元胞包含一个 1×N(或者可能是 N×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

生成的电子表格如下所示:

如果您使用空格 ' ' 而不是换行符,电子表格如下所示(调整行宽和列宽后):

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

【讨论】:

  • 我已经更新了我的代码来解决这个问题,但是当我写到 excel 时仍然有问题。
  • 我还建议使用ExcelCol 来查找正确的列标题。您可以在此处从 FileExchange 下载它:mathworks.com/matlabcentral/fileexchange/… 它使处理 Excel 变得更加容易。
  • 我已经更清楚地说明了我在寻找什么。我会检查 ExcelCol
  • @Ben:我已经更新了我的答案以解决您的最新编辑问题。希望这会有所帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-02
  • 2023-01-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多