Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于matlab的区间间距_Matlab_Ggplot2 - Fatal编程技术网

基于matlab的区间间距

基于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 除此之外,

嗨,我对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
除此之外,所有测试均通过:

测试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,而成绩单输出的预期值(实际值)是失败的。