【问题标题】:plotting symfun and a self created function on same graph matlab在同一图 matlab 上绘制 symfun 和自创函数
【发布时间】:2013-05-09 17:35:23
【问题描述】:

我正在尝试在 matlab 中绘制两个函数,第一个是 kinf symfun:

p = symfun(0, [m]);
p(m) = p(m)+Ck(k-3)*exp(m*(k-3)*complex(0, 2*pi/25));

这里 Ck 是另一个 symfun,k 是我预定义的变量。

我想用我使用函数模式创建的函数将它绘制在同一个图表中:

function [x1] = xt_otot_q3( t)...

我不能使 xt_otot_q3 函数成为一个 symfun,因为它涉及 if 语句。 - 我试图创建 2 个向量,对这两个函数进行采样并将它们与绘图函数一起绘制,但由于某种原因,“p”函数向量变得非常怪诞,给了我奇怪的输出...... - 我尝试使用 ezplot 函数绘制它们,但由于某种原因,我从 xt_otot_q3 获得的采样向量仅在 0 处显示为直线。

任何想法我应该如何将它们绘制在一起?要绘制 xt_otot_q3 函数,如果我尝试使用 ezplot 直接绘制它,我必须创建一个向量,它会给我以下错误:

>> ezplot(xt_otot_q3, [-10 10])
Error using xt_otot_q3 (line 2)
Not enough input arguments.

提前致谢。

【问题讨论】:

    标签: matlab plot


    【解决方案1】:

    如果我理解正确的话,你有两个函数 p 和 xt_otot_q3。您想将它们绘制在一起。

    syms t;
    func1 = xt_otot_q3(t);
    ezplot(func1, [-10 10]); 
    # retain current graph, for new graph
    hold on;
    # symbolic function p
    ezplot(p, [-10 10]); 
    

    希望对你有帮助。

    【讨论】:

    • 嗨,它不起作用,我已经试过了,它在第 2 行之后给了我以下错误:Conversion to logical from sym is not possible. 这是因为我里面有一个 if 语句。
    • 每个公式引用 t 的地方,如果要进行数值替换,则需要改为 code.double(subs(t))。这样做是为了用其数值替换符号变量。
    • 什么意思?你能把它放在代码里吗?这是函数中的代码:if abs(t)<= 8 x1 = exp(-abs(t));
    • abs(double(subs(t)))<= 8 x1 = exp(-abs(double(subs(C))));
    猜你喜欢
    • 2015-08-21
    • 1970-01-01
    • 2016-08-15
    • 1970-01-01
    • 1970-01-01
    • 2015-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多