用数组中的符号替换数值
Replace numeric values with symbols in an array
我面临的问题如下:我得到了一个 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 的数组的通用解决方案。
非常感谢您的帮助和时间。
您可以使用sym
函数:
array=sym(array);
array(isnan(array))=sym('x_',[sum(isnan(array)),1])
解释:
第一行将数组转换为符号数组。第二个用 sym
函数创建的数字索引符号变量替换 Nan
元素。
我面临的问题如下:我得到了一个 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 的数组的通用解决方案。
非常感谢您的帮助和时间。
您可以使用sym
函数:
array=sym(array);
array(isnan(array))=sym('x_',[sum(isnan(array)),1])
解释:
第一行将数组转换为符号数组。第二个用 sym
函数创建的数字索引符号变量替换 Nan
元素。