最近笔者学习MATLAB用来处理机器人轨迹规划,在仿真实现中为了避免代码过于冗长,会进行分开任务区写代码,这就需要各任务区进行数据的交换。 |
一个是设置变量为全局变量,这样任务区中处理后的数据主函数可以使用更新后的数据。 |
例:定义两个数组 a= [1 2 3] ,b= [4 5 6], 定义一个函数pan.m,在pan()中将a+b的值返回给主函数数组c, 最后显示图像 plot(a,b,c)的三维立体图。
·方法一:全局变量
这种方法需要对变量进行全局化,首先在主函数文件中定义变量global, 在调用函数中也需要对变量进行全局话,两个全局化的变量起一个名字,这样数据就能通用了。 |
test.m
global c %全局变量
a = [1 2 3];
b = [4 5 6];
pan(a,b);
plot3(a,b,c);
pan.m
function pan(x,y)
global c %全局变量
c = x+y;
end
方法二:参数传递
下面的两个.m文件,一个是主函数,通过调用pan.m返回c的数组。
test.m
a = [1 2 3];
b = [4 5 6];
c = pan(a,b);
plot3(a,b,c);%显示三维立体图
pan.m
function x1 = pan(x,y)
x1 = x+y;
end
function [返回值1/返回矩阵1]=该函数文件名(参数1,参数2,...,参数n) |
最后运行的结果如下图,c的数组已经成功的被pan.m返回赋值 |
·