получить значение из ячейки матрицы не работает должным образом - PullRequest
0 голосов
/ 03 января 2019

Я хочу сделать гистограмму.Но перед этим мне нужно создать параметр этой гистограммы, который является матрицей.

Итак, у меня есть 191 файл Matlab для загрузки, и я получаю первую ячейку каждой матрицы, созданной этими файлами.Но когда я пишу этот код, у меня есть матрица 1x173 вместо 1x191, и я не получаю ожидаемые значения.

Однако все файлы хорошо загружены, потому что когда я отображаю 'nb' в консоли, у меня ожидаются все значения.

Я обнаружил проблему.Это мой i.Когда я показываю его перед загрузкой моего файла, у меня есть реальное значение i, но когда я делаю это после того, как у меня неправильное значение i

Что мне делать?Обратите внимание, что refer - это матрица, возвращаемая загруженным файлом.

function matrice = histo_display    

repreferenc= 'D:\MATLAB\TSA\referenc\hit';    

for i=1:1:191    
    disp([num2str(i), ':']);    
    NAMEREF = [repreferenc,num2str(i),'.ref'];    
    eval(['load ',NAMEREF,' -mat'])    
    nb = refer(1,1);    
    disp(num2str(i));    
    %disp(num2str(nb));    
    matrice(i) = nb;     
end

Это моя консоль.

>> m = histo_display   
  1:
1
  2:
2
  3:
3
  4:
4
  5:
5
  6:
  7:
12
  8:
  9:
2
  10:
2
  11:
  12:
3
  13:
  14:
2
  15:
2
  16:
3
  17:
3
  18:
  19:
7
  20:
8
  21:
4
  22:
4
  23:
2
  24:
5
  25:
7
  26:
  27:
2
  28:
12
  29:
12
  30:
6
  31:
  32:
2
  33:
  34:
10
  35:
3
  36:
  37:
2
  38:
  39:
5
  40:
5
  41:
2
  42:
2
  43:
  44:
3
  45:
  46:
2
  47:
3
  48:
2
  49:
2
  50:
  51:
4
  52:
3
  53:
  54:
2
  55:
3
  56:
9
  57:
5
  58:
12
  59:
2
  60:
2
  61:
2
  62:
5
  63:
2
  64:
2
  65:
3
  66:
2
  67:
3
  68:
2
  69:
69
  70:
7
  71:
9
  72:
9
  73:
3
  74:
5
  75:
2
  76:
6
  77:
6
  78:
2
  79:
  80:
3
  81:
3
  82:
3
  83:
4
  84:
2
  85:
3
  86:
2
  87:
4
  88:
2
  89:
3
  90:
3
  91:
3
  92:
  93:
5
  94:
8
  95:
7
  96:
4
  97:
  98:
2
  99:
12
  100:
4
  101:
2
  102:
2
  103:
35
  104:
104
  105:
4
  106:
2
  107:
2
  108:
14
  109:
7
  110:
4
  111:
3
  112:
2
  113:
3
  114:
2
  115:
2
  116:
12
  117:
4
  118:
2
  119:
2
  120:
3
  121:
2
  122:
2
  123:
2
  124:
10
  125:
2
  126:
2
  127:
3
  128:
3
  129:
5
  130:
3
  131:
5
  132:
2
  133:
  134:
3
  135:
16
  136:
3
  137:
3
  138:
2
  139:
4
  140:
2
  141:
2
  142:
3
  143:
2
  144:
2
  145:
2
  146:
2
  147:
3
  148:
2
  149:
2
  150:
  151:
2
  152:
3
  153:
16
  154:
2
  155:
6
  156:
9
  157:
2
  158:
2
  159:
2
  160:
2
  161:
2
  162:
3
  163:
2
  164:
5
  165:
7
  166:
4
  167:
4
  168:
2
  169:
  170:
15
  171:
8
  172:
172
  173:
173
  174:
2
  175:
2
  176:
2
  177:
9
  178:
3
  179:
3
  180:
2
  181:
2
  182:
  183:
2
  184:
2
  185:
3
  186:
4
  187:
2
  188:
3
  189:
2
  190:
2
  191:
16

m =

  Columns 1 through 20

     4     1     2     3     4     5     6     7     8     9     0    11     0    13    14    15     0     0     0     0

  Columns 21 through 40

     0     0     0     0     0     0     0     0     0     0     0     0     0     0    34     0     0     0     0     0

  Columns 41 through 60

     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0

  Columns 61 through 80

     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0

  Columns 81 through 100

     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0

  Columns 101 through 120

     0     0     0     9     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0

  Columns 121 through 140

     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0

  Columns 141 through 160

     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0

  Columns 161 through 173

     0     0     0     0     0     0     0     0     0     0     0     2     1

1 Ответ

0 голосов
/ 03 января 2019
function matrice = histo_display
repreferenc= 'D:\MATLAB\TSA\referenc\hit';
j=1;
for i=1:1:191
disp([num2str(i), ':']);
NAMEREF = [repreferenc,num2str(i),'.ref'];
eval(['load ',NAMEREF,' -mat'])
nb = refer(1,1);
disp(num2str(i));
%disp(num2str(nb));
matrice(j) = nb;
j = j+1;
end

Я решил это.Но если кто-то может объяснить мне, почему это «я» не работает должным образом, это будет здорово.

...