如何在Matlab中约束变量

时间:2014-02-09 06:35:38

标签: matlab

Matlab newb here。我搜索过但没有找到如何执行以下操作:

x=0.1:1/100:10;
y=exp(a(a>=-1&a<=1)*sqrt(x));
plot(x,y)

我意识到xa的维度不匹配,但我只想表达:“y在常量{(1}}时的样子是什么例如,约束在-1和1“之间。

任何提示都表示赞赏。提前谢谢。

2 个答案:

答案 0 :(得分:1)

您可以执行以下操作:

x=0.1:1/100:10;    % 991 clips
a=-1:1/495:1;      % use 1/495 here to make it also 991 clips
y=exp(a.*sqrt(x));
plot(x,y)

这将给出下图:

enter image description here

答案 1 :(得分:1)

假设ax是独立的,您可以使用bsxfuny和{{a的所有组合计算x。 1}}:

x = 0.1:1/100:10; %// define x values
a = linspace(-1,1,10); %// define a values
y = exp( bsxfun(@times, a, sqrt(x).') ); %'// compute y for all combinations
plot(x,y); %// this plots each column of y. Each colum represents a value of a

enter image description here

或绘制为3D图形(y作为ax的函数):

mesh(a,x,y)
xlabel('a')
ylabel('x')
zlabel('y')

enter image description here