首页 > 解决方案 > 用于矩阵修改的python双循环

问题描述

我必须对形状像[a,b,c]. 这是我编写的代码,但我获得的结果不是我需要的格式类型。在循环中 dati 是输入数据。在我的情况下a = 512(使用 mroi_i、mroi_f 减少)

frame_corr=[]
dati_corr=[]
for i in range(0,c):
    f = dati[mroi_i:mroi_f,:,i]  # matrix with dimension [mroi_i,mroi_f,b]
    for j in range(0,b):
        s = f[:,j]
        s_corr = (s-d_mean)/(w_mean-d_mean) #i have to normalize the vector s
        frame_corr.append(s_corr)  # i have to rebuild the matrif f
    dati_corr.append(frame_corr) # i have to rebuild the original data 

我从循环中获得的结果是一组新的数据,dati,大小为 C,由 c [Numpy Array] 组成。实际上,我的目标是获得一组与原始数据形状相同的新数据。

标签: pythonloops

解决方案


我找到了使用这种循环形式的解决方案

frame_corr=np.zeros((a,b)) # First i define empty matrix
dati_corr=np.zeros((a,b,c))
for i in range(0,c):
    for j in range(0,b):
        f = dati[mroi_i:mroi_f,:,i]
        s = f[:,j]
        s_corr = (s-d_mean)/(w_mean-d_mean)
        frame_corr[:,j]=s_corr
    dati_corr[:,:,i]=frame_corr

使用这个双循环,我能够获得相同形状的起始数据,但其数据已标准化。


推荐阅读