我在MATLAB中使用NCSOStools进行非交换计算。我创建了一个矩阵,我想导出并保存到Excel文件。这是我的代码:
clear all
clc
syms x
NCvars x
A=[x 2x 3x]
通常我可以使用命令xlswrite(filename,A)
并将矩阵A
保存到excel文件,但我收到错误:
Input data must be a numeric, cell, or logical array.
有没有简单的方法将NCpoly
矩阵A
保存到Excel?我不知道一般情况下是否可以更改数据类型以符合xlswrite
命令。非常感谢。
答案 0 :(得分:0)
我试图保存字符数组并且有效:
a = ['a', ' ','b']
xlswrite (test.xls, a)
可能是,xlswrite不支持符号变量。
答案 1 :(得分:0)
您的矩阵A
为symbolic,因为这是您定义x
的方式。在将A
传递给xlswrite
之前,您需要为x
指定一个明确的值。这可以通过使用subs
替换A
具体值,或者首先不将char
定义为符号来实现。
作为一种变通方法,您可以使用C = cell(size(A));
for k = 1:numel(A)
C{k} = char(A(k));
end
将符号表达式转换为字符串,如下所示:
A = [x, 2 * x, 3 * x]
对于C = {'x', '2*x', '3*x'}
的输入,您应该获得*
。如果您要删除星号(strrep
),可以使用C = strrep(C, '*', '');
:
C
然后,您可以将字符串xlswrite
的单元格数组传递给{{1}}。