根据用户输入绘制流线图,箭头图或两者。功能错误信息

时间:2017-04-18 22:24:06

标签: matlab if-statement matrix plot

我试图根据通过我创建的函数传递的用户输入来绘制流线图,箭头图或两者。它描绘了一个流线,但是当我尝试通过在我的函数中输入'vectors'来绘制一个箭袋时,我得到了错误代码:Matrix维度必须一致。       第3部分(第8行)出错

此错误消息也会显示在我链接的图片中。

我的代码在下面链接为图片,但这里是我的函数和脚本代码文本。

以下是我的功能和脚本图片链接:function script

function [ output_args ] = part3(type,x,y,num,startx)

[XX YY]=meshgrid(x,y);
starty=linspace(-1,1,num);
startx1=-startx;
fx=XX;
fy=sin(XX);
if type=='streamlines'
    hold on
    streamline(XX,YY,fx,fy,startx,starty)
    streamline(XX,YY,fx,fy,startx1,starty)
elseif type=='vectors'
    quiver(XX,YY,fx,fy)
elseif type=='both'
    subplot(1,2,1)
    streamline(XX,YY,fx,fy,startx,starty)
    subplot(1,2,2)
    quiver(XX,YY,fx,fy)
end


end

这是我的剧本:

x=linspace(-2*pi,2*pi,10);
y=linspace(-1,1,30);
startx=ones(size(y));
strmln=30;
part3('vectors',x,y,strmln,startx )

1 个答案:

答案 0 :(得分:0)

type=='streamlines'中的错误只是因为您尝试使用==比较不同长度的字符串。例如,此代码也会导致错误:

type = 'word';
type == 'longerword'

只需使用strcmpstrcmpi来比较字符串:

type = 'word';
strcmp(type,'longerword')