相关代码不输出预期的值

1视图(30天)
尼克·伊莱亚斯
尼克·伊莱亚斯 2021年6月3日
评论道: Sargondjani 2021年6月23日
大家好!
我有一个excel电子表格有三列:循环,力和压力。对于每个独特的周期值,代码之间的相关因子计算力和应变增量矩阵,直到相关性低于一个阈值(我把它设置为0.99)。find_elasticlimit函数输出的最大应变值为每一个独特的后循环计数低于阈值的相关性。
问题是这段代码返回的最大应变出于某些原因,我想的是什么:
只有当循环计数是一个整数(周期列包括半周期,例如0.5,1.5,2.5…),开始计算力和应变之间的相关性因素只有当压力是积极和增加弹性极限应变峰值并返回,这是后应变低于阈值的相关性。如果相关从未低于阈值,返回的最大应变循环。
我附上一个示例数据文件为您的方便。
谢谢你!
数据= xlsread (“Random.xlsx”);
数=数据(:1);
应变=数据(:,2);
力=数据(:,3);
unique_counts =独特(数);
elasticlimit = 0(大小(unique_counts));
peakstrain = 0(大小(unique_counts));
valleystrain = 0(大小(unique_counts));
peakforce = 0(大小(unique_counts));
valleyforce = 0(大小(unique_counts));
n = 1:元素个数(unique_counts)
c = unique_counts (n);
行= ismember(计数、c);
strain_ =应变(行);
force_ =力(行);
%的函数调用
elasticlimit (n) = find_elasticlimit (force_ strain_);
%检索/力从每个周期峰值应变
peakstrain (n) = max (strain_);
[peakstrain (n), idx] = max (strain_);
peakforce (n) = force_ (idx);
%检索谷应变/力从每个周期
valleystrain (n) = min (strain_);
[valleystrain (n),类似]= min (strain_);
valleyforce (n) = force_(补贴);
结束
rankedelastic = rank_elastic (elasticlimit);
函数elasticlimit = find_elasticlimit(力、应变、刺)
如果输入参数个数< 3,用力推= 0.99;结束%设置默认
发现= false;
N = 2:元素个数(应变)
R = corrcoef(应变(1:N),部队(1:N));
R = R (2);
如果R <刺,发现= true;打破,结束
结束
如果发现
elasticlimit =应变(n - 1);
其他的
%或错误返回一个错误条件
elasticlimit = max (strain_);
结束
结束
1评论
Sargondjani
Sargondjani 2021年6月23日
这将是很有帮助如果你缩短问题和代码。精确的哪一部分你的代码不做你想做的事情。

登录置评。

答案(0)

类别

找到更多的在物理帮助中心文件交换

标签

社区寻宝

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

开始狩猎!