2014-10-05 66 views
2

我正在尝试创建一个简单的MatLab脚本,只是学习基础知识,我有一些自定义函数的麻烦。我的逻辑中的问题与基本的MatLab函数

我试图经由线函数来创建一个矩形,我已经想出了以下内容:

function rectfunction(x,y,w,h) 
x1 = [x,x+w,x+w,x,x,x+w,x+w,x] 
y1 = [y+h,y+h,y,y,y,y,y+h,y] 

line([x1,y1]) 

%top 
%line([x,y+h],[x+w,y+h]) 
%bottom 
%line([x+w,y],[x,y]) 
%left 
%line([x,y],[x+w,y]) 
%right 
%line([x+w,y+h],[x+w,y]) 

末的注释掉的代码是版本大多作品,仅如果x/y或w/h值不同,它会遇到麻烦。我被告知要按照我的意图使用一个矢量,现在似乎没有任何东西可以绘制。

我这样呼吁所有这一切中的另一个脚本:

axis([0 100 0 100]) 
rectfunction(20,20,60,60) 

对此事的任何帮助将不胜感激,谢谢。

编辑:我也许应该补充一点,这是一个早期的大学分配的一部分,我不能简单地用“矩形”,因为它违背了车间

也为目的,在这里有一个如何的例子我注释掉的代码会错误地处理不同的值:

enter image description here

它,然而,画得很好,如果X/Y和W/H使用相同的值。

+0

+1发布尝试 – am304 2014-10-05 12:50:36

回答

1

你在你的函数有太多的点,你只需要:

function rectfunction(x,y,w,h) 
x1 = [x,x+w,x+w,x,x]; 
y1 = [y+h,y+h,y,y,y+h]; 

line(x1,y1) 

,它应该只是工作,而不管X/Y和W/H是否使用相同的值或没有。

+0

我的英雄,非常感谢。我可以看到我是个白痴 – Rellac 2014-10-05 12:52:05