[已答复] 请问为什么我用for循环+if语句编写分段函数的时候,for循环不运行呢?就是右侧工作区都没有出现我设置的循环因子(代码如下)

[复制链接]
芋泥醉醉 发表于 2022-5-13 00:49:19
本帖最后由 芋泥醉醉 于 2022-5-13 00:53 编辑

qy1=zuizhong(:,1);%qy1函数是一个1000*1的列向量,可以自己设置
fenzu=reshape(qy1,40,25);%将一列1000个数的sgc分成4025
JZ=[];BZC=[];
for gs=1:25
jz=mean(fenzu(:,gs));
bzc=std(fenzu(:,gs));
JZ(gs)=jz;%得到25个均值组成的数列
BZC(gs)=bzc;%得到25个标准差组成的数列
end
[jzl,xbl]=max(JZ);%查询到最大均值及其对应的下标
[jzs,xbs]=min(JZ);%查询到最小均值及其对应的下标
bzcl=BZC(xbl);%最大均值对应的标准差
bzcs=BZC(xbs);%最小均值对应的标准差
qy1;
gshs=zeros(size(qy1));
for iii=1:length(qy1)
if qy1(iii)<jzs
    gshs(iii)=exp((qy1(iii)-jzs)^2/(2*bzcs^2));
else if qy1(iii)>jzl
    gshs(iii)=exp((qy1(iii)-jzl)^2/(2*bzcl^2));
else
    gshs(iii)=1;
end
end
plot(qy1,gshs,'-*')

1 条回复


TouAkira 发表于 2022-5-13 03:02:13
你看了 if判断(超链接,自己点进去看) 的帮助文档吗?
if expression, statements, end 计算表达式并在表达式为 true 时执行一组语句。表达式的结果非空并且仅包含非零元素(逻辑值或实数值)时,该表达式为 true。否则,表达式为 false。

你的判断条件是针对整个向量做的,即,只要向量中有一个元素不符合判断条件,就会导致判断得到的真伪向量中含有零元素,相应的if分支就会因为不符合预设条件而被跳过。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表