Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 在MATLAB中多次传递参数_Arrays_Matlab_Arguments_Multiple Instances - Fatal编程技术网

Arrays 在MATLAB中多次传递参数

Arrays 在MATLAB中多次传递参数,arrays,matlab,arguments,multiple-instances,Arrays,Matlab,Arguments,Multiple Instances,有没有办法将参数多次传递给不同的数组 我想做的是: r='1:10:end';%这对我不起作用 地块(x1(r)、y1(r)) 地块(x2(r)、y2(r)) ... 并在许多绘图函数中将r传递到不同的数组(具有不同的长度)。我尝试了[r],但没有成功 据我所知,您需要绘制可能大小不同的数组的每10个元素。有几种方法可以做到这一点。一种方法是编写一个短函数来为您过滤数组,例如: plot_10 = @(x,y) plot(x(1:10:end),y(1:10:end)); plot_10(x

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

我想做的是:

r='1:10:end';%这对我不起作用
地块(x1(r)、y1(r))
地块(x2(r)、y2(r))
...


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

据我所知,您需要绘制可能大小不同的数组的每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+');
s = rand(1,2*n);
s(r)

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

据我所知,您需要绘制可能大小不同的数组的每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+');
s = rand(1,2*n);
s(r)

% to compare...
s( 1:1:n )
要使用“end”操作符,它需要位于数组访问调用内部

n = 10;
r = 1 : 1 : n;
r(1:end) % is legal
r(1:floor(end/2)) % is legal
所以你可以这样做:

plot_10 = @(x,y,varargin) plot(x(1:10:end),y(1:10:end),varargin{:});
plot_10(x1,t1,'k+');
s = rand(1,2*n);
s(r)

% to compare...
s( 1:1:n )
要使用“end”操作符,它需要位于数组访问调用内部

n = 10;
r = 1 : 1 : n;
r(1:end) % is legal
r(1:floor(end/2)) % is legal
所以你可以这样做:

plot_10 = @(x,y,varargin) plot(x(1:10:end),y(1:10:end),varargin{:});
plot_10(x1,t1,'k+');
s = rand(1,2*n);
s(r)

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

r
应该是字符串吗?不一定。我只需要一种方法将该参数传递给多个数组函数。如果有更好的方法,如果r是一些带有索引的向量,例如
r=1:1:5
,你肯定可以使用它来绘制位置1到位置5的值,从
x1
y1
等等你的意思是
x1
y1
等?那么你需要MrAzzaman的答案。
r
应该是字符串吗?不一定。我只需要一种方法将该参数传递给多个数组函数。如果有更好的方法,那就更好了,如果r是一些带有索引的向量,例如,
r=1:1:5
,你肯定可以用它来从
x1
y1
等绘制位置1到5的值,你的意思是
x1
y1
等等,那么你需要Mrazzman的答案。谢谢,我想你的回答解决了我的大部分问题。如果我想要在同一个图中有多个图,比如
plot(x1,y1,x2,y2)
,这是否太难了,我想,这会使它变得更难,因为你必须考虑到
plot(x1,y1,'r+',x2,y2,'k')这样的语句的可能性等等。不是说这不可能,但你必须写一个单独的函数文件来完成。谢谢,我想你的回答解决了我的大部分问题。如果我想要在同一个图中有多个图,比如
plot(x1,y1,x2,y2)
,这是否太难了,我想,这会使它变得更难,因为你必须考虑到
plot(x1,y1,'r+',x2,y2,'k')这样的语句的可能性等等。并不是说这是不可能的,但您必须编写一个单独的函数文件来实现。