我怎样才能在Matlab中用Python做这个简单的事情?

时间:2014-10-29 12:37:04

标签: python matlab

简单的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中做同样的事情?

5 个答案:

答案 0 :(得分:3)

您正在寻找切片行为

A = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> A[5:8]
[6, 7, 8]

如果A是您要使用参数678调用的某项功能,则可以使用列表推导。

answers = [A(6+i) for i in range(3)]

答案 1 :(得分:1)

你想要做两件事。

首先,创建一个范围(5 + (1:3)),可以像Python range(number)一样在Python中完成。

其次,将函数应用于每个范围索引。这可以通过mapfor循环来完成。

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)

在python中你可以通过A [5:5 + 3]轻松完成。你也可以通过变量引用值5和3     B = 5     C = 3     一个[B:B + C]