【问题标题】:How to plot a surface plot with constraints如何绘制带有约束的曲面图
【发布时间】:2018-12-02 16:06:17
【问题描述】:

我正在尝试绘制一个受三个约束的函数(参见代码)

现在我尝试了以下

function value = example(x1, x2)

if x1 < 0 || x2 < 0 || x1+2*x2 > 6
    value = NaN;
else 
    value = abs(x1 - x2) + exp(-x1 - x2); 
end

[X, Y] = meshgrid(-10:10, -10:10);
Z = example(X,Y);
surf(X, Y, Z)

现在,这会引发错误,因为无法针对输入 X 和 Y 评估 if 子句。知道如何进行此操作吗?

【问题讨论】:

标签: matlab plot constraints


【解决方案1】:

正如@Cris 提到的,使用logical indexing

基本思想是(x1 &lt; 0 | x2 &lt; 0 | x1+2*x2 &gt; 6) 会给你一个由0 和1 组成的矩阵(与value 的大小相同)。个位的位置对应于真实情况。试试这个:

function value = example(x1, x2)
value = abs(x1 - x2) + exp(-x1 - x2); 
value(x1 < 0 | x2 < 0 | x1+2*x2 > 6) = NaN;

输出:

【讨论】:

    猜你喜欢
    • 2021-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-22
    • 1970-01-01
    • 2021-08-07
    相关资源
    最近更新 更多