我有以下Python代码:

import numpy as np
from scipy.io import savemat
states = np.array([[1,2,3,4,4,4,4,4],[5,6,7,8,8,8,8,8],[9,10,11,12,12,12,12,12],[2,2,2,2,2,2,2,2],[2,2,2,2,2,2,2,2],[2,2,2,2,2,2,2,2],[2,2,2,2,2,2,2,2],[2,2,2,2,2,2,2,2],[2,2,2,2,2,2,2,2],[2,2,2,2,2,2,2,2]])
states2_P = states.copy()
for j in range(2,np.shape(states2)[0]-2):
    if (np.mod(j,2)==0):
        # print(states.shape)
        states2_P[j,:] = (states[j-1,:]*states[j-2,:]).copy()
savemat('states.mat',{"foo": states})

我正在try 在LAB中编写相同的代码:

close all;
clear all;
clc;
states = double(cell2mat(struct2cell(load('states.mat'))));
states2_M = states(:,:);
for i=3:size(X_aug,1)-1
    if mod(i,2)==0
        states2_M(i,:) = states(i-1,:).*states(i-2,:); 
    end 
end

我希望states2_Mstates2_P相匹配.我的LAB代码哪里做错了?

推荐答案

在LAB中,索引基于1,在Python中是基于0.你调整了各地的指数,条件仍然是mod(i,2)==0.在Python中,对于第一个数组元素以及之后的每个第二个元素来说都是如此.在LAB中,对于第二个数组元素以及之后的每个第二个元素来说,这都是成立的.

在LAB中,您需要mod(i,2)==1才能匹配Python.

实际上,您可以省略if陈述,并修改循环以以两步增加:for i=3:2:size(X_aug,1)-1.您的Python代码可以以完全相同的方式进行调整.

Python相关问答推荐

具有nan值的列之间的比率.如何为每一行 Select pandas中没有nan值的列?

Python中进程终止后的意外行为

如何在句子之间添加空白但忽略链接?

无法获得指数曲线_fit来处理日期

预期LP_c_Short实例而不是_ctyles.PyCStructType

将C struct 的指针传递给Python中的ioctel

当pip为学校作业(job)安装sourcefender时,我没有收到匹配的分发错误.我已经try 过Python 3.8.10和3.10.11

在Python中使用一行try

当值是一个integer时,在Python中使用JMESPath来验证字典中的值(例如:1)

如何在Windows上用Python提取名称中带有逗号的文件?

如何在Django基于类的视图中有效地使用UTE和RST HTIP方法?

ODE集成中如何终止solve_ivp的无限运行

numpy卷积与有效

cv2.matchTemplate函数匹配失败

不能使用Gekko方程'

如何更新pandas DataFrame上列标题的de值?

如何在Python中使用Pandas将R s Tukey s HSD表转换为相关矩阵''

try 检索blob名称列表时出现错误填充错误""

基于形状而非距离的两个numpy数组相似性

使用Python从rotowire中抓取MLB每日阵容