我面临的问题如下:我得到了一个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的阵列的通用解决方案。
非常感谢您的帮助和时间。
答案 0 :(得分:1)
您可以使用sym
功能:
array=sym(array);
array(isnan(array))=sym('x_',[sum(isnan(array)),1])
<强>说明:强>
第一行将数组转换为符号数组。第二个元素用Nan
函数创建的数字索引符号变量替换sym
元素。