我想制作一个直方图。但是在此之前,我需要创建此直方图的参数,它是一个矩阵。
因此,我要加载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
答案 0 :(得分:0)
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
我解决了。但是,如果有人可以解释我为什么“ i”无法正常工作,那就太好了。