0

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

4

2 回答 2

0

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

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

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

于 2013-07-17T07:36:53.690 回答
0

您的矩阵A象征性的,因为这是您定义的方式xA在将其传递给之前,您需要为其分配一个确定的值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, '*', '');

然后,您可以将字符串元胞数组传递Cxlswrite.

于 2013-07-17T07:37:29.977 回答