matlab 如何使用for循环和格式化来读取txt文件?

kzipqqlq  于 2022-11-15  发布在  Matlab
关注(0)|答案(2)|浏览(369)

有没有人能帮我把这段MatLab代码转换成一段PYTHON代码?

y = 1995:2022;
for yr = y
    Data_A = importdata(sprintf('Data_%d_A.txt', yr));
    Data_B = importdata(sprintf('Data_%d_B.txt', yr));
    Data_C = importdata(sprintf('Data_%d_C.txt', yr));
    result = inv(eye(size(data_A)) - data_A) + data_B*data_C;
    xlswrite('result_file.xlsx',result,string(sprintf('%d', yr)), 'C3');
end

它实际上是读取从1995年到2022年的A、B和C型文件(DATA_1995_A、DATA_1996_A、DATA_1997_A、DATA_1995_B、DATA_1996_B、DATA_1997_B、DATA_1995_C、DATA_1996_C、DATA_1997_C...),进行简单计算并将结果写入EXCEL中,其中每个工作表代表一年。
如上所述,我可以用MatLab编写它,但我很难用Python编写它。有人能帮帮忙吗?

cigdeys3

cigdeys31#

读取文件并将其写入变量;

A_files_list =[]

for i in (1995,2003):
    f = open(f'Data_{i}_A.txt')
    text = f.read()
    A_files_list.append(text)
    f.close()

但我建议使用Pandas库来读取txt文件并将其另存为DataFrame,这样您就可以计算并合并为另一个DataFrame,并在以后另存为。在下面分享另一篇你可以用来达到这个目的的帖子;
Load data from txt with pandas

hfyxw5xn

hfyxw5xn2#

您需要将range()函数用作

for x in range(1995,2022):

x是您的变量,在本例中,该变量从1995年计算到2021年
一些关于循环的documentationrange() function
无论如何,如果您想详细说明大文件pandas,那么解决方案就是

相关问题