编写matlab矩阵以取得优异成绩

时间:2014-06-11 18:46:21

标签: excel matlab export

我正在尝试从Matlab导出矩阵以使用xlswrite导出。但是,我的矩阵是一个包含诸如'001','00323'之类字符串的cellarray。当它导出到Excel时,Excel会自动将它们转换回数字并将前2个零分为“1”和“323”。

有没有人知道如何强制excel接受它们作为Text从Matlab写入xlsx?

谢谢! 升。

2 个答案:

答案 0 :(得分:4)

Excel可能喜欢这样做,因为它正是Excel在键入这些值时会执行的操作。 解决此问题的一种方法是将'"=001"'放入单元格数组而不是'001',如下面的代码所示。请注意,Excel会在结果文件中正确处理值:

myCell= {1, '0001', '="0001"'};
xlswrite('test.xlsx', myCell)

如果需要,您可以编写一个小函数,用引号括住单元格数组中的所有字符串:

function aCell = fixForExcel(aCell)

    for ind = 1:numel(aCell)
        myVal = aCell{ind};

        if isstr(myVal)
            aCell{ind} = sprintf('="%s"', myVal)
        end
    end

end

答案 1 :(得分:0)

我使用SSN遇到了这个问题。我不知道用xlswrite创建电子表格有多少控制权。

您可以将格式设置为文本,这样可以保留前导零。

问题仍然存在,当您打开电子表格时,将消除所有前导零。您可以创建一个自定义格式,指定单元格的格式有两个前导零。您可以使用“\ 0 \ 0#”作为自定义表达式。文本格式将在第一次保存后保存。

如果您的变量数为0,那么解决这个问题的唯一方法就是将数据复制到Excel中。