倔强青铜铜 2023-03-09 18:46 采纳率: 84%
浏览 19
已结题

用matlab画图没曲线

想用matlab在复平面绘制含有未知数的复函数,如f(w)=a(w)+b(w)i这种形式,但是画出来看不见曲线,对于软件给出的错误我也看不懂
以下是我的代码

k=atan((-10*w-w.^3)/(24+3*(w.^2)));
q= sqrt((9+w.^2)/(w.^2+4)*(w.^2+16));
a = q*cos(k); % 实部
b = q*sin(k); % 虚部
w_min = -100; % 最小ω值
w_max =100; % 最大ω值
 
% 定义f(ω)函数
f = @(w) a + b*1i;

% 绘制f(ω)函数在w_min到w_max范围内的图像
 fplot(f, [w_min, w_max]);
 grid on;
% % 限制x轴和y轴的范围
xlim([a-1, a+1]);
ylim([b-1, b+1]);
 

img


这是错误,有一大堆,请问一下要怎么优化呀?

  • 写回答

2条回答 默认 最新

  • MarkHan_ 2023-03-09 18:57
    关注

    该回答引用GPTᴼᴾᴱᴺᴬᴵ
    根据报错信息,可以看到警告信息是函数处理数组输入时行为异常,需要将函数正确向量化,以返回大小和形状与输入参数相同的输出。而在绘制图像时,xlim和ylim的范围也应该是包含递增的数值的2元素向量。

    针对这个问题,可以尝试修改代码如下:

    k = atan((-10*w-w.^3)/(24+3*(w.^2)));
    q = sqrt((9+w.^2)/(w.^2+4)*(w.^2+16));
    a = q .* cos(k); % 实部
    b = q .* sin(k); % 虚部
    
    % 定义f(ω)函数
    f = @(w) a + b*1i;
    
    % 绘制f(ω)函数在w_min到w_max范围内的图像
    fplot(f, [w_min, w_max]);
    grid on;
    
    % 限制x轴和y轴的范围
    xlim([a(1)-1, a(1)+1]);
    ylim([b(1)-1, b(1)+1]);
    
    
    

    这里将a和b的计算改为了使用点乘运算符.来完成向量的乘法,以实现向量化计算。另外,在xlim和ylim中需要分别取向量a和b的第一个元素,因为它们在本例中都是长度为1的向量,取任意一个元素即可。

    希望这能帮助你解决问题。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月23日
  • 已采纳回答 4月15日
  • 创建了问题 3月9日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度