用数组中的符号代替数字值

问题描述:

我面临的问题如下:我已经给出了一个包含2个NaN的6x1数组,代表2个未知值。我想要做的是用符号值替换这些值(例如,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

Im给出了一个代表变量的NaN数组,但是由于我正在编程一个求解器,因此提供的数据可能有2,3,4个NaN是N个变量。所以简而言之,我想找到第一个NaN被x_1替代,第二个由x_2替换...然后有一个带有0和变量的数组来运行求解器。谢谢你的时间。 –

+0

所以你需要一个_symbolic_数组?如果是这样的话,添加“符号数学”标签,以便知识的人可以帮助 –

可以使用sym功能:

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

说明: 第一行阵列的符号阵列转换。第二个用sym函数创建的数字索引符号变量替换Nan元素。

+0

这正是我正在寻找的。非常感谢您的时间。 –