查看: 171|回复: 0|关注: 0

[未答复] matlab修改inp文件数据的疑问

[复制链接]

新手

5 麦片

财富积分


050


4

主题

8

帖子

0

最佳答案
发表于 2020-3-29 23:46:44 | 显示全部楼层 |阅读模式
小弟想改inp文件中的某些数据,然后在网上找了个代码,也通过笨办法让他运行了起来。但是如果某一行里有相似的数值,比如说1,那么我要把1修改成10的话,同行里的1都会变成10。有没有什么办法只能某一列的数据改变?
  1. clc
  2. clear all
  3. close all

  4. fidin1=fopen('yingjianglu.inp','r+');% 需要读取的文件
  5. i=0;
  6. while ~feof(fidin1)
  7.     tline=fgetl(fidin1);%读取一行
  8.     i=i+1;
  9.     %fprintf(fidout,'%s\n',tline);      
  10.     newtline{i}=tline;   
  11.     if i==121     
  12.     %如果读到第六行,文件中的第六行中的 enc 替换为news_qcif
  13.         newtline{i}=strrep(tline,'0.6','d1');%替换的函数
  14.     end
  15.     if i==122     
  16.     %如果读到第六行,文件中的第六行中的 enc 替换为news_qcif
  17.         newtline{i}=strrep(tline,'0.6','d2');%替换的函数
  18.     end
  19.     if i==123     
  20.     %如果读到第六行,文件中的第六行中的 enc 替换为news_qcif
  21.         newtline{i}=strrep(tline,'0.6','d3');%替换的函数
  22.     end
  23.     if i==124   
  24.     %如果读到第六行,文件中的第六行中的 enc 替换为news_qcif
  25.         newtline{i}=strrep(tline,'0.8','d4');%替换的函数
  26.     end
  27.     if i==125     
  28.     %如果读到第六行,文件中的第六行中的 enc 替换为news_qcif
  29.         newtline{i}=strrep(tline,'0.8','d5');%替换的函数
  30.     end
  31.     if i==126     
  32.     %如果读到第六行,文件中的第六行中的 enc 替换为news_qcif
  33.         newtline{i}=strrep(tline,'0.8','d6');%替换的函数
  34.     end
  35.     if i==127   
  36.     %如果读到第六行,文件中的第六行中的 enc 替换为news_qcif
  37.         newtline{i}=strrep(tline,'1','d7');%替换的函数
  38.     end
  39.     if i==128     
  40.     %如果读到第六行,文件中的第六行中的 enc 替换为news_qcif
  41.         newtline{i}=strrep(tline,'1','d8');%替换的函数
  42.     end
  43.     if i==129     
  44.     %如果读到第六行,文件中的第六行中的 enc 替换为news_qcif
  45.         newtline{i}=strrep(tline,'1','d9');%替换的函数
  46.     end
  47.     if i==130     
  48.     %如果读到第六行,文件中的第六行中的 enc 替换为news_qcif
  49.         newtline{i}=strrep(tline,'1','d10');%替换的函数
  50.     end
  51.     if i==131     
  52.     %如果读到第六行,文件中的第六行中的 enc 替换为news_qcif
  53.         newtline{i}=strrep(tline,'1.1','d11');%替换的函数
  54.     end
  55.     if i==132     
  56.     %如果读到第六行,文件中的第六行中的 enc 替换为news_qcif
  57.         newtline{i}=strrep(tline,'1.1','d12');%替换的函数
  58.     end
  59.      if i==133     
  60.     %如果读到第六行,文件中的第六行中的 enc 替换为news_qcif
  61.         newtline{i}=strrep(tline,'1.1','d13');%替换的函数
  62.      end
  63.      if i==134     
  64.     %如果读到第六行,文件中的第六行中的 enc 替换为news_qcif
  65.         newtline{i}=strrep(tline,'1.2','d14');%替换的函数
  66.     end
  67. end
  68. fclose(fidin1);
  69. %%重新以写的形式打开,写入覆盖原来的内容
  70. fidin1=fopen('yingjianglu2.inp','w+')
  71. for j=1:1:i-1
  72.     fprintf(fidin1,'%s\n',newtline{j})
  73. end
  74. fclose(fidin1)
复制代码
以下是修改后的样子:



                               
登录/注册后可看大图


回复主题 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表