我正在將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