我在Matlab中有以下代碼片段,並且希望將它移植到Python。將此片段從Matlab移植到Python
for i=1:runs;
tic;
datmat=importdata('data.txt',' ');
Limits_Area=[1,261,522,784,1045,1305,1565,1827,2088,2349,2610,2871,3131,3158];
for k=1:2000;
for j=1:13;
Year_Data=datmat.data(Limits_Area(j):Limits_Area(j+1)-1,4:37);
Min_Year=min(Year_Data);
Max_Year=max(Year_Data);
Mean_Year=mean(Year_Data);
GainLoss_Year=100-(Year_Data(1,:)+0.00000001)./(Year_Data(end,:)+0.00000001)*100;
end;
end;
我有一個很艱難的時間與
Year_Data=datmat.data(Limits_Area(j):Limits_Area(j+1)-1,4:37);
一部分....任何方向?
謝謝
這將是很好,如果你能表現出一定的來自'data.txt'的數據,並且提供一些你想要完成的事情的解釋,對於那些瞭解python但在matlab中不流暢的人。你能向我們展示你的嘗試以及失敗的方式嗎?另外,在你的代碼中似乎有一個bug,就是外循環以同樣的方式在_exactly_中運行2000次內循環。爲什麼? –
你好羅蘭,數據似乎是一個.txt文件包含貨幣值在整個時間與列:KEY月日,然後一系列三個字符的貨幣代碼,即澳元ATS等。我想完成的只是採取這個Matlab代碼並將其移植到python中,不問任何問題。我在Matlab中也不流利,這就是爲什麼我想要了解特定的行。這實際上是一個有人寫的愚蠢的「基準測試」代碼,所以你看到的是一個bug ......實際上是一個功能。 – Thanos
這一行發生了什麼叫做索引。您正在選擇具體的行和列,它們是:來自Limits_Area(j)到Limits_Area(j + 1)和列4到37的行。Limits_Area(j)在向量中索引,簡單地表示第j個Limits_Area的元素。 http://www.mathworks.com/company/newsletters/articles/Matrix-Indexing-in-MATLAB/matrix.html Numpy有一個非常相似的語法,所以如果它應該在Matlab中看起來相同,請使用它。 – Tobold