0

我想从文本文件中读取参数并将其总结为四个变量。由于参数太多,我决定编写一个 for 循环来自动化它。

问题是,循环只创建了一个名称错误的变量“ans”而不是“machnumber”。这是我的代码,也许你可以看到任何失败:

function [machNumbers, weights, altitudes, specificRanges]=readsrm(myfilename)
myfilename = "parameterfile.txt"

  fid = fopen(myfilename,'r');
  fskipl(fid, 3);

  # read number of machnumber
  numMachNumber = fscanf(fid, "%i", 1)
  fscanf(fid, "%s", 5);
  machNumbers = fscanf(fid, "%f", numMachNumber);

  # read weights
  numWeights = fscanf(fid, "%i", 1);
  fscanf(fid, "%s", 5);
  weights = fscanf(fid, "%f", numWeights)

  # rad altitudes 
  numFl = fscanf(fid, "%i", 1)
  fscanf(fid, "%s", 5);
  altitudes = fscanf(fid, "%f", numFl)

  irrelevantValues = fscanf(fid, "%s", 7)

  for altitudes = 1:numFl
    for weights = 1:numWeights
      specificRanges(altitudes, weights, 1:numMachNumber) = fscanf(fid, "%f", numMachNumber);
    endfor
  endfor
  fclose(fid);
endfunction

这是文本文件:

SRMST     15112012 4


   26  MN       CV BI CV MACHNUMBER
    0.44    0.46    0.48    0.50    0.52    0.54    0.56    0.58
    0.60    0.62    0.64    0.66    0.68    0.70    0.71    0.72
    0.73    0.74    0.75    0.76    0.77    0.78    0.79    0.80
    0.81    0.82

   29  KG       LN BI LN WEIGHT
  39000.  40500.  42000.  43500.  45000.  46500.  48000.  49500.
  51000.  52500.  54000.  55500.  57000.  58500.  60000.  61500.
  63000.  64500.  66000.  67500.  69000.  70500.  72000.  73500.
  75000.  76500.  78000.  79500.  81000.

   24  FT       LN BI LN ALTITUDE
  18000.  19000.  20000.  21000.  22000.  23000.  24000.  25000.
  26000.  27000.  28000.  29000.  30000.  31000.  32000.  33000.
  34000.  35000.  36000.  37000.  38000.  39000.  40000.  41000.

18096  NMTO     LN BI LN SPECIFIC RANGE
  176.47  175.17  176.48  173.93  170.98  167.27  163.47  159.51
  155.33  151.18  147.02  142.67  138.02  133.25  131.67  131.67

我会欢迎你的帮助。

一切顺利,

迈克尔

4

0 回答 0