如何正确地更改此部分( [AIF,j]=get_AIF_j(InterpFact)和[~,j_index] = min(InterpFact-AIF_vect) )?剩下的代码呢?提前谢谢。
%Matlab code
InterpFact = (fs_h/2/2)/(fd_max);
[AIF,j]=get_AIF_j(InterpFact);
function [AIF,j] = get_AIF_j (InterpFact)
j_vect = 1:10;
AIF_vect = floor(j_vect*InterpFact)./j_vect;
[~,j_index] = min(InterpFact-AIF_vect);
j = j_vect(j_index);
AIF = AIF_vect(j_index);
end#Python code
InterpFact = (fs_h/2/2)/(fd_max)
[AIF,j]=get_AIF_j(InterpFact)
def get_AIF_j (InterpFact):
j_vect =np.arange(1,11)
AIF_vect = np.floor(j_vect*InterpFact)/j_vect
[~,j_index] = min(InterpFact-AIF_vect)
j = j_vect[j_index]
AIF = AIF_vect[j_index];
return AIF,j发布于 2022-09-18 14:24:28
这个MATLAB:
[~,j_index] = min(InterpFact-AIF_vect);将被翻译成Python,如:
j_index = np.argmin(InterpFact-AIF_vect)而且,只有当…/(fd_max)是标量时,才能像您那样翻译fd_max。在MATLAB中用矩阵除法求解线性方程组。
我强烈建议您使用相同的输入并行运行这两段代码,以验证它们是否执行相同的操作。你不能凭猜测来猜测一段代码是干什么的。
发布于 2022-09-18 11:57:46
试试这个,看看它是否提供了它应该提供的东西(我在这里不确定,因为我不太懂matlab):
#Python code
import numpy as np
def get_AIF_j (InterpFact):
j_vect = np.arange(1,11)
AIF_vect = np.floor(j_vect*InterpFact)/j_vect
j_index = int( min(InterpFact-AIF_vect) )
print(j_index)
j = j_vect[j_index]
AIF = AIF_vect[j_index];
return AIF, j
fs_h = 24; fd_max = 1
InterpFact = (fs_h/2/2)/(fd_max)
AIF, j = get_AIF_j(InterpFact)
print(AIF,j) 给予:
0
6.0 1https://stackoverflow.com/questions/73762417
复制相似问题