如何修改我的 MatLab 脚本以正确写入 Excel?

How to modify my MatLab script to correctly write to Excel?

所以我基本上在 MatLab 中有一个小脚本,我在一个更大的程序中使用它。该脚本本质上一直将数据写入 Excel 文件。

脚本跨单元格横向写入数据如下:

function writevar(x,k,filename)
    col = char(64+k);
    N = size(x,1);
    Rg = sprintf([col '1:' col '%i' ],N);
    xlswrite(filename,x,Rg)
end

在 A-Z 列之间写入数据时,该脚本可以完美运行。但是,一旦它到达 Z 列,它就会崩溃。我如何修改脚本,以便它可以继续写入超出 Z 列的 AA、AB 等(它需要一直向下到 CR)。

谢谢。

您正在正确处理 [1, 26] 范围内的 k 值。据推测,AA 列在您的输入中将是 k = 27,因此您需要对其进行一些特殊的数学计算。这是一个片段,在一般情况下应该将 k 转换为列名:

k = k - 1; % Convert to zero-based for ease of processing
col = '';
while k ~= 0
    % Prepend higher digits
    col = [char(mod(k, 26) + 65) col];
    k = floor(k / 26);
end

处理这个问题的一种方法(参见 BlackAdder 的评论)是

function writevar(x,k,filename)
  if (k > 26) {
    col = [char(64+ceil(k/26)) char(64+mod(k,26))];
  else
    col = [char(64+k);
  end
  N = size(x,1);
  Rg = sprintf([col '1:' col '%i' ],N);
  xlswrite(filename,x,Rg)
end