Octave: For-Loop создает неправильные переменные - PullRequest
0 голосов
/ 16 сентября 2018

Я хочу прочитать параметры из текстового файла и суммировать его до четырех переменных.Из-за этого большого количества параметров я решил написать цикл 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

Буду рад вашей помощи.

Вселучший,

Майкл

...