私は精通していないよMATLABで次のコードを持っている:私はエラーを取得する行列をMatlabからPythonに変換するにはどうすればよいですか?
def segment_energy(data, th):
mag = np.linalg.norm((data['x'], data['y'], data['z']))
print "This is the mag: " + str(mag)
mag -= np.mean(mag)
above = np.where(mag >= th * np.std(mag))
indicator = np.zeros(mag.shape)
indicator[above] = 1
plt.plot(mag)
plt.plot(indicator * 1000, 'r')
plt.show()
:
line 23, in segment_energy
indicator[above] = 1
IndexError: too many indices for array
私はPythonで、この次の関数を書いた
function segments = segmentEnergy(data, th)
mag = sqrt(sum(data(:, 1:3) .^ 2, 2));
mag = mag - mean(mag);
above = find(mag>=th*std(mag));
indicator = zeros(size(mag));
indicator(above) = 1;
plot(mag); hold on; plot(indicator*1000, 'r')
end
を
data
は、三軸加速度計データを含むCSVファイルから読み取られたパンダDataFrame
です。加速度計データの軸は、x
,y
、およびz
です。データフレームの列は、timestamp
,time skipped
,x
,y
,z
およびlabel
の順になっています。
エラーは、Pythonコードのmag
がスカラーであり、私が行列のように扱っているためです。しかし、どのように彼らがmag
をMATLAB関数の行列に変換しているのかよくわかりません。
「データ」とは何ですか? –
'data'はCSVファイルのデータフレームです。 – dirtysocks45
次に、 'mag = np.linalg.norm(data.iloc [:、1:3] .values())'を使ってみてください。 –