将数值替换为数组中的符号

时间:2017-03-15 22:39:54

标签: matlab symbols symbolic-math solver

我面临的问题如下:我得到了一个6x1的数组,其中包含2个代表2个未知值的NaN。我想要做的是用符号值替换这些值(例如,x_1和x_2)。我不明白该做什么,如果我给出一个12x1阵列,例如10 NaN,我必须改为X_1,X_2 ...... X_10,以便之后使用求解器。

array = [0; 0; NaN; 0; 0; 0; 0; NaN; 0];

转变为:

array = [0; 0; x_1; 0; 0; 0; 0; x_2; 0];

但它必须是具有不同NaN的阵列的通用解决方案。

非常感谢您的帮助和时间。

1 个答案:

答案 0 :(得分:1)

您可以使用sym功能:

array=sym(array);
array(isnan(array))=sym('x_',[sum(isnan(array)),1])

<强>说明: 第一行将数组转换为符号数组。第二个元素用Nan函数创建的数字索引符号变量替换sym元素。