为什么我的“n”只有1?

1个视图(过去30天)
CTRJW
CTRJW 2022年4月16日
评论道: 马特·J 2022年4月17日
我有一些代码和一个循环,n值(在本例中)应该是10,但它只显示为8。我有一种感觉,这是因为一个文件有282列,其余的都在232以下,它在某个地方给它加了一个上限(可能是通过n ?),所以不能访问232以上的列。
有人对如何解决这个问题有什么建议吗?或者你需要查看数据吗?
笔记本=可读的(“notebook.xlsx”);
文件名=记事本。文件名;
Num_files = length(filename);
Exp = cell(1,num_files);
peak_point_2 = notebook.CADO_DPCPX;
peak_point_B = (peak_point_2(:,1)) - 1;
N = 1:num_files
Fname = filename{n};
Exp {n} = import_wcp(fname);
num_samp = size(exp{n}.S{1},1);
t = 0: exp {n} .t_interval: (num_samp-1) * exp {n} .t_interval;
new_files = exp{n}.S{1,1}(1:400,:);
New_files (New_files >-0.1) = [0];
New_files (New_files <-0.6) = [0];
peak_CADO_DPCPX = min(new_files(:,peak_point_B));
结束
我得到的错误消息是:
位置2的索引超出数组边界。索引不能超过200。
实践中的错误(第18行)
peak_CADO_DPCPX = min(new_files(:,peak_point_B));
我不知道哪里出了问题。
3评论
马特·J
马特·J 2022年4月17日
最初的问题:
我有一些代码和一个循环,n值(在本例中)应该是10,但它只显示为8。我有一种感觉,这是因为一个文件有282列,其余的都在232以下,它在某个地方给它加了一个上限(可能是通过n ?),所以不能访问232以上的列。
有人对如何解决这个问题有什么建议吗?或者你需要查看数据吗?
笔记本=可读的(“notebook.xlsx”);
文件名=记事本。文件名;
Num_files = length(filename);
Exp = cell(1,num_files);
peak_point_2 = notebook.CADO_DPCPX;
peak_point_B = (peak_point_2(:,1)) - 1;
N = 1:num_files
Fname = filename{n};
Exp {n} = import_wcp(fname);
num_samp = size(exp{n}.S{1},1);
t = 0: exp {n} .t_interval: (num_samp-1) * exp {n} .t_interval;
new_files = exp{n}.S{1,1}(1:400,:);
New_files (New_files >-0.1) = [0];
New_files (New_files <-0.6) = [0];
peak_CADO_DPCPX = min(new_files(:,peak_point_B));
结束
我得到的错误消息是:
位置2的索引超出数组边界。索引不能超过200。
实践中的错误(第18行)
peak_CADO_DPCPX = min(new_files(:,peak_point_B));
我不知道哪里出了问题。

登录发表评论。

答案(2)

dpb
dpb 2022年4月16日
您定义
peak_point_B = (peak_point_2(:,1)) - 1;
从给定文件的循环外部,然后尝试使用它作为来自循环内其他文件的另一组数组的第二个维度索引——
peak_CADO_DPCPX = min(new_files(:,peak_point_B));
显然,如果这些文件中的一个(或多个)中没有那么多列,那么就会出现寻址错误。
错误消息告诉您第一个失败文件的给定数组大小为200;我不知道你对8的纠结在哪;除非这是列表中数组大小超过的第一个文件。
解决方法是确保所有输入文件至少有 peak_point_B 列或基于循环内的每个文件计算点索引——无论如何,对所有其他文件使用这个常量似乎没有多大意义??

沃斯
沃斯 2022年4月16日
我猜这一行是:
peak_CADO_DPCPX = min(new_files(:,peak_point_B));% peak_point_B用于所有文件
应该是这样:
peak_CADO_DPCPX = min(new_files(:,peak_point_B(n)));% peak_point_B为第n个文件
没有文中提到的10个文件就不能确定吗 notebook.xlsx

标签

s manbetx 845

社区寻宝

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

开始狩猎!