倔强青铜铜 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日

悬赏问题

  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)