循环索引数组

127(30天)
韦德
韦德 2012年7月31日
编辑: 阿米尔moin2021年7月23日
我遇到这一次在最近的一个项目中,我正在和在想什么好解决方案。金宝搏官方网站情况是我经常有一个数组表示在一条线的立场。
X = 1:10;
我想创建一个函数索引的代码和圆包装,这样当我经历的第一次迭代循环idx-1 = 0被解释为10。
i = 1:10
(X(张)+ X(我))/ 2
结束
我试着添加结束元素数组的开始。
10 X = [1:10]
i = 2:11
虽然看起来有点像一个丑陋的解决方案。还有其他的建议吗?
谢谢!

接受的答案

沃尔特·罗伯森
沃尔特·罗伯森 2012年7月31日
编辑:沃尔特·罗伯森 2012年7月31日
wrapN = @ (x, N)(1 +国防部(x - 1, N));
N =长度(X);
i = 1:10
张(X (wrapN (N)) + X (wrapN(我,N))) / 2
结束
2的评论
沃尔特·罗伯森
沃尔特·罗伯森 2017年4月30日
啊,对了。和我的命名,或者是一致的
wrapN = @ (x, N)(1 +国防部(x - 1, N));

登录置评。

更多的答案(6)

奥列格•科马罗夫
奥列格•科马罗夫 2012年7月31日
我有一些不同的,一个矢量化方法:
X = 1:10;
转变= 1;
B1 = (circshift (X,[1]转变)+ X) / 2
B2 = (X([晚班+ 1 1:晚班])+ X) / 2%等效
isequal (B1, B2)% 1

Teja Muppirala
Teja Muppirala 2012年8月1日
X = 1:10;
传输线(fft (X)。* fft([1] / 2,元素个数(X)))

bym
bym 2012年7月31日
编辑:bym 2012年7月31日
我不知道它会有所帮助,但您可以使用X作为索引变量的循环
10 X = [1:10]
X
结束
另外,如果在循环你发布你能做什么
y = conv (X)。5。5);
结束y ([1]) = [];
没有一个循环

安德烈Bobrov
安德烈Bobrov 2012年8月1日
编辑:安德烈Bobrov 2012年8月1日
在这种情况下
X = 1:10;
conv (X([1:末端]),(1)/ 2,“有效”);

韦德
韦德 2012年8月2日
感谢所有!

阿米尔moin
阿米尔moin 2021年7月23日
编辑:阿米尔moin 2021年7月23日
把你需要的长度N = 10圈;然后你可以设置数组X(100)的价值循环指数指数(k)
N = 10;
指数= @ (i)国防部(我,N) + (mod(我,N) = = 0)。* N;
X =指数(1:10 0);
结束
3评论
沃尔特·罗伯森
沃尔特·罗伯森 2021年7月23日
似乎比我复杂
wrapN = @ (x, N)(1 +国防部(x - 1, N));
X = wrapN (1:10 0, 10);

登录置评。

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!