在MATLAB中导出非数字(NCpoly类型)数据

时间:2013-07-17 06:45:18

标签: matlab

我在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命令。非常感谢。

2 个答案:

答案 0 :(得分:0)

我试图保存字符数组并且有效:

a = ['a', ' ','b']
xlswrite (test.xls, a)

可能是,xlswrite不支持符号变量。

答案 1 :(得分:0)

您的矩阵Asymbolic,因为这是您定义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}}。