基于matlab的区间间距
嗨,我对matlab和编程都是新手,我想知道是否有人能告诉我我的代码出了什么问题 这些是我的指示和价值观 完成dampedOsc函数的实现,该函数计算并绘制一个图形,显示函数y=e-0.8xcos 3x在一个时间点 间隔为0.1且范围为0到3π的一组点 曲线应使用洋红虚线显示 “五角星”标记 我的代码是:基于matlab的区间间距,matlab,ggplot2,Matlab,Ggplot2,嗨,我对matlab和编程都是新手,我想知道是否有人能告诉我我的代码出了什么问题 这些是我的指示和价值观 完成dampedOsc函数的实现,该函数计算并绘制一个图形,显示函数y=e-0.8xcos 3x在一个时间点 间隔为0.1且范围为0到3π的一组点 曲线应使用洋红虚线显示 “五角星”标记 我的代码是: function y = dampedOsc(x) fplot(@(x) (exp(-0.8*x)*cos(3*x)),[0 3*pi()],'mp:') end 除此之外,
function y = dampedOsc(x)
fplot(@(x) (exp(-0.8*x)*cos(3*x)),[0 3*pi()],'mp:')
end
除此之外,所有测试均通过:
测试1(已绘制功能的测试):
实际值的大小不正确:
expectedSize =
1 95
actualSize =
1 98
Test failed.
我真的不知道出了什么问题,我以为是因为缺少
点间距的间隔,但我不知道如何输入。这是一个有趣的问题,所以我将尝试一下。我可能会这样做
function z = dampedOsc(x)
if isvector(x) == 0
return
else
z = zeros(1,length(x));
for n = 1 : length(x)
y = exp(-0.8 .* x(n)) .* cos(3 .* x(n));
z(1,n) = y;
end
end
z
end
然后,从另一个脚本调用dampedOsc
函数,应该给出这个图
plot([0 : 0.1 : (3*pi)],dampedOsc(x),'mp:')
我没有MATLAB在我面前,但我认为这应该是可行的。如果不行,我可以修好它。祝你的项目好运 这是因为间隔,正如在您的说明中所说,它应该以0.1的间隔完成,但是在您的代码中,您让函数(
fplot
)为您选择。为了避免这种情况,您可能需要使用函数plot
,并通过计算函数中所需的x
来生成y
值。感谢您的回复。这是我不确定该怎么做的部分,我输入了函数y=dampedOsc(x)fplot(@(x)(exp(1)^(-0.8*x)*cos(3*x)),[0:0.1:3*pi()],'mp:'))结束,但actualSize输出现在是[1 54]我尝试过x=0:0.1:3*pi()但它会导致一个错误,根本无法工作,你知道我把它放在哪里了吗?谢谢你的回复,我输入了函数y=dampedOsc(x)fplot(@(x)(exp(1)^(-0.8*x)*cos(3*x)),[0:0.1:3*pi()],'mp:')结束,但实际输出现在是[154]我尝试了x=0:0.1:3*pi(),但结果是一个错误,根本不起作用,你知道我把它放在哪里了吗?我也试过plot([0:0.1:[3*pi)],dampedOsc(x),'mp:')谢谢你说的“实际输出”是什么意思?你是说向量的长度吗?如果您尝试“x=0:0.1:3*pi()”,请不要使用括号来表示您正在创建pi
的实例。您不必在MATLAB中这样做,这可能会导致错误。只需使用pi
。区间为:x=[0:0.1:[3*pi]代码>表示x是一个行向量,包含从零到三个pi的值,每个值之间有0.1。谢谢,我给了这个函数y=dampedOsc(x)fplot(@(x)(exp(1)^(-0.8*x)*cos(3*x)),[0:0.1:3*pi()],'mp:'))结束,此函数y=dampedOsc(x)fplot(@(x)(exp(1)^(-0.8*x)*cos(3*x)),[0:0.1:3*pi];'mp:')结束一个围棋,但我的得分仍然是3/4,而成绩单输出的预期值(实际值)是失败的。