我正在将matlab转换为python代码。
我不明白这两行代码。将matlab转换为python代码
d1 = s(1:3,2) - s(1:3,1);
d2 = s(1:3,end) - s(1:3,end-1);
这2行是干什么的?任何人都可以解释我?
以及我将如何在python中进行转换?
我正在将matlab转换为python代码。
我不明白这两行代码。将matlab转换为python代码
d1 = s(1:3,2) - s(1:3,1);
d2 = s(1:3,end) - s(1:3,end-1);
这2行是干什么的?任何人都可以解释我?
以及我将如何在python中进行转换?
s是矩阵。 (1:3,2)从第1行到第3行以及第2列创建一个向量。 s(1:3,1)从第1行到第3行和第1列创建一个向量。然后,d1是另一个向量,逐个元素差异
end是最后一行或列的特殊语法。端-1是倒数第二行/列
在Matlab中:
% Matlab
s = [1,2,3,4,5; ...
6,7,8,9,10; ...
11,12,13,14,15];
d1 = s(1:3,2) - s(1:3,1);
d2 = s(1:3,end) - s(1:3,end-1);
disp('--s--')
disp(s)
disp('--d1--')
disp(d1)
disp('--d2--')
disp(d2)
disp('--s(1:3,2)--')
disp(s(1:3,2))
disp('--s(1:3,1)--')
disp(s(1:3,1))
disp('--s(1:3,end)--')
disp(s(1:3,end))
disp('--s(1:3,end-1)--')
disp(s(1:3,end-1))
可以翻译成Python作为点:Matlab的
# Python
import numpy as np
s = np.asarray([ \
1,2,3,4,5, \
6,7,8,9,10, \
11,12,13,14,15]).reshape(3,-1);
d1 = s[0:3,1] - s[0:3,0];
d2 = s[0:3,-1] - s[:3,-2];
print '--s--'
print s
print '--d1--'
print d1
print '--d2--'
print d2
print '--s[0:3,1]--'
print s[0:3,1]
print '--s[0:3,0]--'
print s[0:3,0]
print '--s[0:3,-1]--'
print s[0:3,-1]
print '--s[0:3,-2]--'
print s[0:3,-2]
结果:
--s--
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
--d1--
1
1
1
--d2--
1
1
1
--s(1:3,2)--
2
7
12
--s(1:3,1)--
1
6
11
--s(1:3,end)--
5
10
15
--s(1:3,end-1)--
4
9
14
VS的Python:
--s--
[[ 1 2 3 4 5]
[ 6 7 8 9 10]
[11 12 13 14 15]]
--d1--
[1 1 1]
--d2--
[1 1 1]
--s[0:3,1]--
[ 2 7 12]
--s[0:3,0]--
[ 1 6 11]
--s[0:3,-1]--
[ 5 10 15]
--s[0:3,-2]--
[ 4 9 14]
他们匹配。
是否尝试过在MATLAB中打印零件的结果?你得到了什么? – Christian
我没有matlab,但我需要做转换 – sam
尝试[this](http://www.compileonline.com/execute_matlab_online.php)在线运行MATLAB代码。 – Christian