在MATLAB中多次传递参数

时间:2013-12-04 00:30:28

标签: arrays matlab arguments multiple-instances

有没有办法将参数多次传递给不同的数组?

我想做的是:

  

r ='1:10:结束'; %这对我不起作用   plot(x1(r),y1(r));
  plot(x2(r),y2(r));
  ......

并在许多绘图函数中将r传递给不同的数组(具有不同的长度)。我试过[r]但没有成功。

2 个答案:

答案 0 :(得分:4)

据我所知,你想要绘制可能不同大小的数组的每个第10个元素。有几种方法可以做到这一点。一种方法是编写一个简短的函数来为您过滤数组,例如:

plot_10 = @(x,y) plot(x(1:10:end),y(1:10:end));
plot_10(x1,y1);
plot_10(x2,y2);
...

编辑:只是另外一个想法。如果要启用绘图的扩展功能(例如传递行/颜色参数等)。你可以这样做:

plot_10 = @(x,y,varargin) plot(x(1:10:end),y(1:10:end),varargin{:});
plot_10(x1,t1,'k+');

答案 1 :(得分:1)

要使用“end”运算符,它需要位于数组访问调用中;

n = 10;
r = 1 : 1 : n;
r(1:end) % is legal
r(1:floor(end/2)) % is legal

所以你可以这样做:

s = rand(1,2*n);
s(r)

% to compare...
s( 1:1:n )