Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
matlab到python代码转换的难点_Python_Matlab - Fatal编程技术网

matlab到python代码转换的难点

matlab到python代码转换的难点,python,matlab,Python,Matlab,我正在将matlab代码转换为python代码 function Xn = ReSampleCurve(X,N) [n,T] = size(X); del(1) = 0; for r = 2:T del(r) = norm(X(:,r) - X(:,r-1)); end cumdel = cumsum(del)/sum(del); newdel = [0:N-1]/(N-1); for j=1:n

我正在将matlab代码转换为python代码

function Xn = ReSampleCurve(X,N)

    [n,T] = size(X);
    del(1) = 0;
    for r = 2:T
        del(r) = norm(X(:,r) - X(:,r-1));
    end
    cumdel = cumsum(del)/sum(del);   

    newdel = [0:N-1]/(N-1);

    for j=1:n
        Xn(j,:) = interp1(cumdel,X(j,1:T),newdel,'linear');
    end
我想把它转换成python代码

输入值为:

X = [[-9.035250067710876, 7.453250169754028, 33.34074878692627], [-6.63700008392334, 5.132999956607819, 31.66075038909912],[-5.1272499561309814, 8.251499891281128, 30.925999641418457], [-5.1272499561309814, 8.251499891281128, 30.925999641418457]]
N = 200
谁能解释一下这些台词的作用吗

    del(1) = 0;
    for r = 2:T
        del(r) = norm(X(:,r) - X(:,r-1));

del
是MATLAB代码中的一个数组。因此,
del(1)=0
相当于
del_list=[0]
(MATLAB数组为1索引,
del
是python中的保留字)

在for循环中,这相当于:

for r in range(1,T):
    del_list.append(norm(X[:,r] - X[:,r-1]))

上述方法在纯python中不起作用(数组减法不起作用)。您必须添加numpy或numeric)-但希望您能明白这一点。

对于它的价值,以下是在Matlab中获取
del(2:end)
的矢量化方法,也许这对您更有意义:

sqrt(sum(diff(M,1,2).^2))
您可以尝试运行matlab代码,自己查看。。。