【问题标题】:Plot a specific two input elements equation绘制特定的两个输入元素方程
【发布时间】:2016-11-20 05:28:08
【问题描述】:

如何在 Matlab 中绘制下面的等式。 这个等式有两个因素。

请注意,k 是 (-1,1) 中的标量数。

所以给定一个 x 值,一个 double 值(-infinity,+infinity)。

我需要绘制这个函数的图形。

if x>0              plot (1-k)x
else (case x<=0)    plot(1+k)x

【问题讨论】:

标签: matlab math plot anonymous-function graphic


【解决方案1】:

我喜欢匿名函数——可以提高可读性。

f = @(x,k) (1-k).*x.*(x>0) + (1+k).*x.*(x<=0)
plot(x,f(x,k))

注意使用 (x>0) 和 (x

【讨论】:

  • 我可以用你的代码在 Matlab 中绘图吗?不知道这个用@的形式,是不是参数化的方式?
  • 是的,你可以。只需先定义 x 和 k 即可。
  • 我的问题是我想为这个函数绘制每个案例,k={-1,0,1} 和 x 是 [-1000, 1000] 中的点连续值,仅用于测试。我想我需要为每种 k 的情况绘制三个地块。
【解决方案2】:

希望对你有帮助

k = 3 - randi(3); %random number between -1-0-1 (thanks op)
x = -1e6:1e6; %a very long vecot
y = zeros(1,length(x)); %prelocate y
ind = find(x); %find the indeces where x>0
y(ind) = (1- k) * x(ind);
ind = find (x<=0);
y(ind) = (1+k) * x(ind);
plot(x,y);%plot

【讨论】:

  • 嘿,很好@Ronen Cohen,但是将您的版本用于 [-1,1] 中的浮点值,效果不佳,因为您将 ans 向量设为 2x2,并且使用它会出错。如果我想模拟整数状态,在这种情况下 k={-1,0,1},我使用的是 randi(3)-2。谢谢你想帮助我! ans = 0.5315 -0.4685 -0.4685 0.5315 >> (rand*(-1))^(randi(1,2))
猜你喜欢
  • 2021-07-19
  • 1970-01-01
  • 1970-01-01
  • 2017-09-28
  • 1970-01-01
  • 2016-04-13
  • 1970-01-01
  • 1970-01-01
  • 2012-01-02
相关资源
最近更新 更多