阅读许多Matlab文件,更改它们并在Python中创建许多新的Matlab文件

时间:2016-06-05 20:38:18

标签: matlab python-3.x save

现在的问题是如何将所有“新”matlab文件放在一个文件夹中。否则我将未交换的与交换的混合。我的档案很大!

我编写了代码,但即使我指定放置文件的位置,它也不起作用!

    read_files = glob.glob('/home/FeaturesF3/*.mat') 
    write_files = glob.glob('/home/Swapped/'
    x2D = np.array([])
    for f in read_files:
        x3D = sio.loadmat(f)['features']
        x2D = x3D.swapaxes(0,1)
        outputFileName = join (write_files, f + '_swapped.mat')
        sio.savemat(outputFileName, {"x2D":x2D})

我想阅读许多位于“FeaturesF3”文件夹内的Matlab文件(20),交换索引,然后创建其他20个新的Matlab文件。 使用我的代码,我只获得1“* .mat”文件。 我在哪里以及如何指定“新”Matlab文件的名称,并且必须有20而不仅仅是1?

这是我的代码:

read_files = glob.glob('/home/FeaturesF3/*.mat') 
x2D = np.array([])
for f in read_files:
    x3D = sio.loadmat(f)['features']
    x2D = x3D.swapaxes(0,1)
    sio.savemat('/home/FeaturesF3/*.mat', {"x2D":x2D})

1 个答案:

答案 0 :(得分:1)

sio.savemat('/home/FeaturesF3/*.mat', {"x2D":x2D})

是你的问题:你总是使用相同的文件名(顺便说一句,看起来无效)。

如果只是附加到输入文件名呢?

for f in read_files:
    …
    sio.savemat(f + "_swapped.mat", {"x2D":x2D})