24小时热门版块排行榜    

查看: 5062  |  回复: 4

elve920504

新虫 (初入文坛)

[求助] 用matlab进行批量处理数据时遇到的问题 已有2人参与

fluent计算结果输出170个压力分布数据,现在需要把数据进行批量处理求平均值。小女子新虫一枚,金币不多,望大神帮助。
下面是编的程序:
%-------------------------------------------------------------------------%
clear
%导入原始数据
cd('C:\Users\yangliu\Desktop\LES 未定义来流的湍流度\cp');%待处理的数据文件所在文件夹
Allname=struct2cell(dir); %得到上述文件夹下的所有文件名
%dir命令,可以得到路径内包括文件名在内的文件信息,为struc数据结构。
%-------------------------------------------------------------------------%

%逐个读入文件
[m,n]=size(Allname);
y=zeros(300,1);%对矩阵y进行赋值
for i=3:n %前两个不是文件名
    name=Allname{1,i};%第一行作为文件名用来提取数据
    hang=[5 304];%5行到304行
    lie=[1 2];%1到2列
    fid1=fopen('C:\Users\yangliu\Desktop\LES 未定义来流的湍流度\cp\name','r');
    temp=textscan(fid1,'%f %f ',5,304);%读取5-304行数据
    fclose(fid1);
     for k=1hang(2)-hang(1)+1)
         for l=1lie(2)-lie(1)+1)
             b=temp{l+lie(1)-1}{k+hang(1)-1};
              A(k,l)=str2num(b);
          end % for l=1lie(2)-lie(1)+1)
     end %  for k=1hang(2)-hang(1)+1)
   %将数据赋值到矩阵
     B(i)=A(:,2);
   if mod(i,n)==1
     fid2=fopen('C:\Users\yangliu\Desktop\LES 未定义来流的湍流度\cp\cpaverage.txt','wt');
        D(:,1)=A(:,1);
        D(:,2)=y(:,1)/(n-2);
      for j=1:1:300
        for m=1:1:2
            if m==2
               fprintf(fid,'%g\n',D(j,m));
            else
               fprintf(fid,'%g\t',D(j,m));
            end
         end
      end
      fclose(fid2);%将数据逐个写入文件中
   else
  i=i+1;
  y(:,1)=B(i)+y(:,1);
end %for if mod(i,n)==1
end %for i=3:n
这是自己编的程序,读取5-304行数据,并对第二列进行平均计算,提示错误使用 textscan。文件标识符无效。使用 fopen 生成有效的文件标识符。后面附有一个待处理的文件。小女子matlab刚开始学习,实在是不知道怎么改程序了,求各位大神帮助,不吝赐教啊。
回复此楼

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : 03cp.dat
  • 2015-11-30 16:10:50, 12.54 K

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Dlinlin

新虫 (小有名气)

这个解决了吗??我也在做fluent计算,碰到问题,想请教
2楼2017-06-02 15:39:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

somomo91

专家顾问 (职业作家)

【答案】应助回帖


jjdg: 金币+1, 感谢参与 2017-06-03 01:20:08
这里的问题在于 textscan 输入格式不对,因为第一到第四行是字符串格式,所以自然会出错。
用循环很容易出错,能不用就不用
这里有更简单的解决方法,两行(其实一行)代码就可以解决的
CODE:
rawdata = textread('03cp.dat', '%s','delimiter', '\n');
data = cell2mat( cellfun(@str2num, rawdata(5:304),'un',0) );

3楼2017-06-03 01:00:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

somomo91

专家顾问 (职业作家)


jjdg: 金币+1, 感谢参与 2017-06-03 01:20:22
完全不懂什么数据,不过曲线很有意思
用matlab进行批量处理数据时遇到的问题

4楼2017-06-03 01:03:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Deemo7

新虫 (初入文坛)

【答案】应助回帖

楼主您额批量处理的文件夹是几层的啊
5楼2017-06-29 08:36:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 elve920504 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 321求调剂 +3 大米饭! 2026-03-15 3/150 2026-03-15 17:48 by 哈哈哈哈嘿嘿嘿
[考研] 294求调剂 +3 Zys010410@ 2026-03-13 4/200 2026-03-15 10:59 by zhq0425
[考研] 304求调剂 +5 小熊joy 2026-03-14 5/250 2026-03-14 21:07 by peike
[考研] 307求调剂 +7 超级伊昂大王 2026-03-10 7/350 2026-03-14 00:49 by JourneyLucky
[考研] 一志愿华中农业大学071010,总分三百二,求调剂 +3 困困困困坤坤 2026-03-10 3/150 2026-03-14 00:35 by JourneyLucky
[考研] 0703,333分求调剂 一志愿郑州大学-物理化学 +3 李魔女斗篷 2026-03-11 3/150 2026-03-13 22:24 by JourneyLucky
[考研] 285化工学硕求调剂(081700) +6 柴郡猫_ 2026-03-12 6/300 2026-03-13 20:46 by hmn_wj
[考研] 26调剂/材料科学与工程/总分295/求收留 +9 2026调剂侠 2026-03-12 9/450 2026-03-13 20:46 by 18595523086
[硕博家园] 085600 260分求调剂 +3 天空还下雨么 2026-03-13 5/250 2026-03-13 18:46 by 天空还下雨么
[考研] 310求调剂 +3 【上上签】 2026-03-11 3/150 2026-03-13 16:16 by JourneyLucky
[考研] 求调剂 +3 程雨杭 2026-03-12 3/150 2026-03-13 15:06 by JourneyLucky
[考研] 304求调剂(085602一志愿985) +12 化工人999 2026-03-09 12/600 2026-03-13 12:02 by JourneyLucky
[考研] 材料专硕274一志愿陕西师范大学求调剂 +4 薛云鹏 2026-03-13 4/200 2026-03-13 10:40 by 学员8dgXkO
[考研] 296求调剂 +3 大口吃饭 身体健 2026-03-13 3/150 2026-03-13 10:31 by 学员8dgXkO
[考博] 读博申请 +5 感dd 2026-03-10 7/350 2026-03-11 17:02 by QGZDSYS
[考研] 293求调剂,一志愿陕师大生物学 +3 ??????.?.??? 2026-03-09 3/150 2026-03-11 10:02 by 学员8dgXkO
[考研] 298求调剂 +3 Vv呀! 2026-03-10 3/150 2026-03-10 22:40 by 剑诗杜康
[考研] 327分求调剂086 +4 西红柿?小帅 2026-03-09 7/350 2026-03-10 14:47 by ruiyingmiao
[考研] 一志愿:武汉理工,材料工程,英二数二 总分314 +3 2202020125 2026-03-10 4/200 2026-03-10 13:54 by xiongyaxuan
[考研] 294 英二数二物化 求调剂 +6 米饭团不好吃 2026-03-09 6/300 2026-03-09 23:55 by barlinike
信息提示
请填处理意见