我的图是一个没有线的白色图。

1次查看(最近30天)
尤努斯梅尔江
尤努斯梅尔江 2021年4月12日
评论道: 图像分析 2021年4月12日
当我尝试用下面给出的代码绘制时,什么也没有出现。没有错误,只有一张空白页。我想要的是y值与t值之间的直线。
请帮助我。从现在开始谢谢你。
清晰的所有
clc;
t = 1:25
如果t = = 1, 2, 3, 4, 5;
y (t) = 1
elseift = = 6, 7, 8, 9, 10;
y (t) = 0.9
elseift = = 11、12、13、14、15日;
y (t) = 1
elseift = = 16、17、18、19、20日;
y (t) = 1.05
elseift = = 21日,22日,23日,24日,25日;
y (t) = 1
结束
结束
数字
持有;情节(t、y)
包含(‘t (1/100));ylabel (“虚拟现实”);
标题(“我VR Değşimi”);
期望曲线是这样的

接受的答案

斯蒂芬。
斯蒂芬。 2021年4月12日
编辑:斯蒂芬。 2021年4月12日
基本的问题是这种语法
如果t = = 1, 2, 3, 4, 5;
等于这样写(即每个表达式都是独立计算的):
如果t = = 1
2
3.
4
5;
这不是一次比较多个值的正确方法。记住MATLAB这个名字来自于矩阵实验室:你应该始终将数据保存在向量/矩阵/数组中。例如:
如果任何(t = =(1、2、3、4、5))
% ^^^^^^^^^^^ 向量!
注意,你应该预先分配 y 前循环:
注意,虽然可以绘制垂直线,但您的方法无法做到这一点。
3评论
图像分析
图像分析 2021年4月12日
switch语句可以用来一次比较多个情况,而不是if/else语句。例如:
开关(结果)
情况下1
disp (“结果是1”
情况下{78}
disp ('结果是52或78'
结束

登录评论。

更多的答案(2)

Atsushi上野
Atsushi上野 2021年4月12日
  1. 在执行脚本后,y为[1 0 0 0 0.9 0 0 0 1 ....它一定和你所期望的不一样。
  2. 在executinf for循环之后,变量t将被删除。因此,在for循环之后需要t = 1:25。
下面的代码呢?
清晰的所有
clc;
t = 1:25;
Y = repelem([1 0.9 1 1.05 1], 1,5);
数字
持有
情节(t, y)
包含(‘t (1/100));
ylabel (“虚拟现实”);
标题(“我VR Değşimi”);
3评论
尤努斯梅尔江
尤努斯梅尔江 2021年4月12日
Atsushi上野 这次没问题,谢谢您的关注。

登录评论。


Jithin Nambiar J
Jithin Nambiar J 2021年4月12日
编辑:Jithin Nambiar J 2021年4月12日
您的代码可能会变得相当冗长和乏味。代码中的if语句不能很好地工作,因为它不能正确地比较用逗号分隔的值。
t = 0.0001:0.01:40;
x = -0.05 (t > 0)。* (t > 5) + 0.05。* (t > 15) + 0.05。* -0.05 (t > 25)。* (t > 35);
情节(t, x)
网格
包含(‘t (1/100));ylabel (“虚拟现实”);
标题(“我VR Değşimi”);
除非你打算在上面的图中绘制另一张图。你不需要使用
持有
希望这个有帮助。干杯!

标签

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!