简单的Matlab代码:例如A(5+(1:3))
- >给出[A(6), A(7), A(8)]
在上文中,A
是向量或矩阵。例如:
A = [1 2 3 4 5 6 7 8 9 10];
A(5+(1:3))
ans =
6 7 8
请注意,MATLAB索引从1开始,而不是从0开始。
我如何在Python中做同样的事情?
答案 0 :(得分:3)
您正在寻找切片行为
A = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> A[5:8]
[6, 7, 8]
如果A
是您要使用参数6
,7
和8
调用的某项功能,则可以使用列表推导。
answers = [A(6+i) for i in range(3)]
答案 1 :(得分:1)
你想要做两件事。
首先,创建一个范围(5 + (1:3))
,可以像Python range(number)
一样在Python中完成。
其次,将函数应用于每个范围索引。这可以通过map
或for
循环来完成。
for
循环解决方案已得到解决,因此基于map
的解决方案:
result = map(A,your_range)
答案 2 :(得分:0)
使用列表理解:
x = 5
f = 1 # from
t = 3 # till
print [x+i for i in range(f,t+1)]
答案 3 :(得分:0)
如果您尝试使用下标来创建一个数组,该数组是整个数组的子集: subset_list = A [6:8]
答案 4 :(得分:0)