索引超出了数组元素的数量(0)。TPA误差(32)行time_orig = time_orig - time_orig(1);任何一个可以解决这个问题

1视图(30天)
你好,我所面临的问题。我可以运行一个文本文件,1 - 1603和这个我有1 - 3504号码显示错误。如何解决它。
清晰的所有;
clc;
关闭所有;
文件名=“text2.xlsx”;
表= 1;
开始=' 1 ';
end1 =“3504”;
forceRange = [“B”开始“B”end1];
disprange = [“C”开始”:C 'end1];
timerange = [“一个”开始”:“end1];
force_orig = xlsread(文件名、表forceRange);
disp_orig = xlsread(文件名、表disprange);
time_orig = xlsread(文件名、表timerange);
计算= 1;
time_interval = 0.1;
specimen_type = 1;
specimen_dia = 10;
specimen_height = 10;
specimen_area =π* (specimen_dia / 2) ^ 2;
endcount = 4;
mean_range = 10;
tol_factor = 2;
[inum, jnum] =大小(time_orig);
startpt = 1;
endpt = inum;
time_orig = time_orig - time_orig (1);
time_end =圆(max (time_orig));
时间= 0:time_interval: time_end;
时间= ';
disp = interp1 (time_orig、disp_orig、时间);%误差固定
力= interp1 (time_orig、force_orig、时间);
[isize, jsize] =大小(时间);
x_halfspan =圆(isize / 2);
mean_force_level =意味着(部队(x_halfspan-mean_range: x_halfspan + mean_range));
力= force-mean_force_level;%抵消零力水平
tol_force_level_max = max(部队(x_halfspan-mean_range: x_halfspan + mean_range)) * tol_factor;
tol_force_level_min = min(部队(x_halfspan-mean_range: x_halfspan + mean_range)) * tol_factor;
point1 = 1;
卷帘窗= 1;
point3 = 1;
point4 = 1;
point5 = 1;
point6 = 1;
point7 = 1;
point8 = 1;
point3c = 1;
point1 = 1;
[dispmax1 point3c] = max (disp (1: x_halfspan));
[dispmax2 point7temp] = max (disp (x_halfspan + 1: isize));
point7 = point7temp + x_halfspan;
[硬度point3] = max(力(1:point3c));
counter = 0;
卷帘窗= 1;
我= 1:point3
[force_p2 ip2] = max(力(1:我));
如果卷帘窗= = ip2
counter = counter + 1;
其他的
卷帘窗= ip2;
counter = 0;
结束
如果计数器= = endcount
打破
结束
结束
point4 = point3c;
我= point3c: x_halfspan
如果(我)< = tol_force_level_max力量
point4 =我;
打破
结束
结束
point5 = point4 + 20;
point6 = point7;
我= point7: 1: x_halfspan
如果(我)< = tol_force_level_max力量
point6 =我;
打破
结束
结束
point8 = point7;
我= point7: isize
如果(我)< = tol_force_level_max力量
point8 =我;
打破
结束
结束
dispscale = 1;% 25
%的调整文本的空间形象
xstep = 40;% 120
ystep = 5;
点= [point1卷帘窗point3 point4 point5 point6 point7 point8 point3c);
apt_points = [startpt endpt点);
图;
次要情节(2,1,1),情节(disp,“r”,“线宽”(1.5),包含“时间(s)”),ylabel (的位移(毫米))、网格;
(1)文本(时间(分),disp(分(1)),“x point1”,“字形大小”14);
(2)文本(时间(分),disp(点(2)),“x卷帘窗”,“字形大小”14);
(3)文本(时间(分),disp(分(3)),“x point3”,“字形大小”14);
(4)文本(时间(分),disp(分(4)),“x point4”,“字形大小”14);
(5)文本(时间(分),disp(点(5)),“x point5”,“字形大小”14);
(6)文本(时间(分),disp(点(6)),“x point6”,“字形大小”14);
(7)文本(时间(分),disp(点(7)),“x point7”,“字形大小”14);
文本(时间(点(8)),disp(点(8)),“x point8”,“字形大小”14);
(9)文本(时间(分),disp(分(9)),“x point3c”,“字形大小”14);
次要情节(2,1,2),图(时间、力“线宽”(1.5),包含“时间(s)”),ylabel (“力(N)”)、网格;
(1)文本(时间(分),力(分(1)),“x point1”,“字形大小”14);
(2)文本(时间(分),力(点(2)),“x卷帘窗Fracturability”,“字形大小”14);
(3)文本(时间(分),力(分(3)),“x point3硬度”,“字形大小”14);
(4)文本(时间(分),力(分(4)),“x point4”,“字形大小”14);
(5)文本(时间(分),力(点(5)),“x point5”,“字形大小”14);
(6)文本(时间(分),力(点(6)),“x point6”,“字形大小”14);
(7)文本(时间(分),力(点(7)),“x point7”,“字形大小”14);
文本(时间(点(8)),力(点(8)),“x point8”,“字形大小”14);
(9)文本(时间(分)(9)(点),“x point3c”,“字形大小”14);
图;
情节(力,“线宽”,1.5);
持有;
网格;
情节(disp“r”,“线宽”,1.5);
(1)文本(分,力(分(1)),“x point1”,“字形大小”14);
(2)文本(分,力(点(2)),“x卷帘窗Fracturability”,“字形大小”14);
(3)文本(分,力(分(3)),“x point3硬度”,“字形大小”14);
文本(点(4),(分(4)),“x point4”,“字形大小”14);
(5)文本(分,力(点(5)),“x point5”,“字形大小”14);
文本(点(6),(点(6)),“x point6”,“字形大小”14);
文本(点(7),(点(7)),“x point7”,“字形大小”14);
文本(点(8),(8)(点),“x point8”,“字形大小”14);
文本(点(9),disp(点(9))* dispscale,“x point3c”,“字形大小”14);
如果计算= = 1
% TPA_fun_5
length1 =时间(点(9))-(分(1));
(7)length2 =时间(点)-(6)(点);
dispdiff4 = disp(分(1)+ 1:分(9)+ 1)-disp(分(1):分(9));
area4 =总和(部队(分(1):分(9))。* dispdiff4);
dispdiff5 = disp(分(9)+ 1:分(4)+ 1)-disp(分(9):分(4));
area5 =总和(部队(分(9):分(4))。* dispdiff5);%位移是减少我们需要消极的迹象
area1 = area4 + area5;
dispdiff3 = disp(分(4)+ 1:分(5)+ 1)-disp(点(4):点(5));
area3 =总和(部队(点(4):点(5))。* dispdiff3);%减少位移和力的是负的
dispdiff2part1 = disp(分(6)+ 1:分(7)+ 1)-disp(点(6):点(7));
area2part1 =总和(部队(点(6):点(7))。* dispdiff2part1);
dispdiff2part2 = disp(分(7)+ 1:分(8)+ 1)-disp(点(7):点(8));
area2part2 =总和(部队(点(7):点(8))。* dispdiff2part2);%位移递减
area2 = area2part1 + area2part2;
(3)硬度=力(点);
Fracturability =力(点(2));
凝聚力= area2 / area1;
弹性= length2 / length1;
黏性=硬度*凝聚力;
咀嚼性=黏性*弹性;
弹性= area5 / area4;
tt =点(5)+ xstep;
文本(tt,力(点(3))* dispscale, (的硬度= 'num2str(硬度)),“字形大小”14);
文本(tt,力(点(3))* dispscale-ystep, (“Fracturability = 'num2str (Fracturability)),“字形大小”14);
文本(tt,部队(点(3))* dispscale-2 * ystep, (的凝聚力= 'num2str(凝聚力)),“字形大小”14);
文本(tt,部队(点(3))* dispscale-3 * ystep, (“弹性= 'num2str(弹性)),“字形大小”14);
文本(tt,部队(点(3))* dispscale-4 * ystep, (“黏性= 'num2str(黏性)),“字形大小”14);
文本(tt,部队(点(3))* dispscale-5 * ystep, (的咀嚼性= 'num2str(咀嚼性)),“字形大小”14);
文本(tt,部队(点(3))* dispscale-6 * ystep, (“弹性= 'num2str(弹性)),“字形大小”14);
[isize ~] =大小(时间);
TPAoutputtime =时间(point1: isize) - (point1);
TPAoutputforce =力(point1: isize);
TPAoutputdisp = disp (point1: isize);
TPAoutputdata = [TPAoutputtime TPAoutputforce TPAoutputdisp];
STNoutputtime =时间(point1: point3c) - (point1);
STNoutputforce =力(point1: point3c) force (point1);
STNoutputdisp = disp (point1: point3c) -disp (point1);
STNoutputstress = STNoutputforce / specimen_area;
STNoutputstrain = STNoutputdisp / specimen_height;%也许正片叠底100 (%)
Fracture_stress =(卷帘窗)/ specimen_area力量;
Strength_of_material = (point3c) / specimen_area力量;
E_range_start =圆((point2-point1) / 3);
E_range_end =圆((point2-point1) / 2);
(r, EModulus b) =回归(STNoutputstrain (E_range_start: E_range_end)”, STNoutputstress (E_range_start: E_range_end) ');
次要情节(2,1,1),情节(TPAoutputtime TPAoutputforce),包含(“时间”),ylabel (“力”)、网格;
次要情节(2,1,2),图(TPAoutputtime TPAoutputdisp),包含(“时间”),ylabel (“disp”)、网格;
图;
情节(STNoutputstrain STNoutputstress),包含(“应变”),ylabel (“压力”)、网格;
plotregression (STNoutputstrain (E_range_start: E_range_end)”, STNoutputstress (E_range_start: E_range_end) ');
结束

答案(1)

“止Aleti
“止Aleti 2020年3月27日
这个错误发生在输入的数据的范围不是数字。 在您的代码中,数据在“ timerange “不是数字。
在这种情况下,您可以使用下面的语法:
(num, txt,生)= xlsread (___)
即。,replace
time_orig = xlsread(文件名、表timerange);
[time_orig_num, time_orig_txt,生]= xlsread(文件名、表timerange);
%字符单元阵列转换成数值向量
time_orig = 0(长度(time_orig_txt), 1);
i = 1:长度(time_orig_txt)
time_orig (i) = str2num (time_orig_txt{我});
结束
您可以参考的文档页面 xlsread 在以下链接:
同时,“xlsread”是不可取的。您可以使用“ readtable ”。

社区寻宝

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

开始狩猎!