首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Matlab批处理.csv文件

Matlab批处理.csv文件
EN

Stack Overflow用户
提问于 2014-06-19 15:56:56
回答 1查看 486关注 0票数 1

我使用Matlab处理.csv文件中的数据分析。对于所有文件,我必须使用相同的公式来分析数百个.csv文件中的数据。数据的输出将存储在一个矩阵(nrow和ncolumn)中。

我有一个问题,当计算完成时,矩阵的第一列给出正确的答案,而其余的列给出错误的答案。有人能帮我解决这个问题吗?

这是我的密码。

代码语言:javascript
复制
  %% importing the csv file with selected column
  files=dir('*.csv');
  for r=1:length(files);
      LHR=importcsv(files(r).name);

      %% Calculation of SMD
      % Define These Value
      TAW=-216;
      RAW=-129;

      % The very first row of Soil Moisture Deficit
      for j=1
          SMD(j,r)=(LHR.RAIN(j)-LHR.PET(j));
          if SMD(j,r)>0;
              SMD(j,r)=0;
          elseif SMD(j,r)<RAW;
              SMD(j,r)=(LHR.RAIN(j)-(LHR.PET(j)*((TAW-SMD(j-1))/(TAW-RAW))));
          end
      end

      %for the following SMD Calculation
      for o=2:(numel(LHR.RAIN));
          SMD(o,r)=SMD(o-1)+(LHR.RAIN(o)-LHR.PET(o));
          % The SMD conditions
          if SMD(o,r)>0;
              SMD(o,r)=0;
          elseif SMD(o,r)<RAW;
              SMD(o,r)=SMD(o-1)+(LHR.RAIN(o)-(LHR.PET(o)*((TAW-SMD(o-1))/(TAW-RAW))));
          end  
      end
 end
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-19 16:45:24

使用以下代码更改第三个for循环。这应该能给你正确的答案。

代码语言:javascript
复制
%for the following SMD Calculation
          for o=2:(numel(LHR.RAIN));
              SMD(o,r)=SMD(o-1,r)+(LHR.RAIN(o)-LHR.PET(o));
              % The SMD conditions
              if SMD(o,r)>0;
                  SMD(o,r)=0;
              elseif SMD(o,r)<RAW;
                  SMD(o,r)=SMD(o-1,r)+(LHR.RAIN(o)-(LHR.PET(o)*((TAW-SMD(o-1,r))/(TAW-RAW))));
              end  
          end
     end

我会在这里向你解释。SMD是一个二维矩阵。在代码的第三个for循环中,您提到它是向量[SMD(o-1)]。我把它改成了[SMD(o-1,r)]。我希望这能给你正确的答案。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24311043

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档