指数在位置1超出数组边界(不得超过1818)

5视图(30天)
阿米莉亚卡尔”class=
阿米莉亚卡尔 2020年5月11日
编辑: Stephen23 2020年5月11日
我在MATLAB上运行我的代码,我得到一个错误信息:“指数在位置1超出数组边界(不得超过1818)”。
错误消息来自:“matrix_load(我,数量)= all_file_matrix(我,2)”。
什么“指数在位置1超出数组边界”的意思吗?
我该如何解决呢?
我附上了我的txt文件。
这是我的代码:
% %计算实验数据的平均水平
file_name = {“Sample1”,“Sample2”,“之上”,“Sample4”,“Sample5”};
numExperiments = 5;
行= 1821;
matrix_load = 0(行,numExperiments);
matrix_disp = 0(行,numExperiments);
数量= 1:numExperiments
all_file_matrix =负载(fullfile(路径名,sprintf (“样本% d.txt”)));
i = 1:行
matrix_load(我,数量)= all_file_matrix(我,2);
matrix_disp(我,数量)= all_file_matrix(我,1);
结束
结束
average_load =意味着(matrix_load, 2);
average_disp =意味着(matrix_disp, 2);

答案(2)

KALYAN ACHARJYA”class=
KALYAN ACHARJYA 2020年5月11日
编辑:KALYAN ACHARJYA 2020年5月11日
你的all_file_matrix ( Sample1.txt ) 1818年 行和你试图访问 行(i) = 1821。

Stephen23”class=
Stephen23 2020年5月11日
编辑:Stephen23 2020年5月11日
什么“指数在位置1超出数组边界”的意思吗?”
这里是下标索引的索引位置:
anyarray (position1 position2、position3 position4,)
errror消息告诉我们,你使用一个索引值在位置1大于数组实际上。原因是容易识别当我们看你的文件数据:所有的文件有1818行,除了 Sample2.txt 1821年。我想这就是为什么你预先分配输出矩阵有1821行,但你也需要考虑会发生什么(实际发生错误):
all_file_matrix(我,2)
all_file_matrix(我,1)
对于任何的文件只有1818行,当我= 1819会发生什么呢?(提示:因为索引超出了数组大小将抛出一个错误)。
修复是仅指行实际上存在,例如:
N = 5;%的实验
R = 1821;%的最大行数
matrix_load = 0 (R, N);
matrix_disp = 0 (R, N);
k = 1: N
F = sprintf (“样本% u.txt”、k);
M = dlmread (F);
S =大小(M);
matrix_load (1: (1), k) = M (:, 2);
matrix_disp (1: (1), k) = M (: 1);
结束% ^ ^ ^ ^ ^ ^这索引修复错误
你还需要考虑零底部的列将包含在计算你的意思:你需要决定如果你想实现的意义。

下载188bet金宝搏

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!