24小时热门版块排行榜    

查看: 1446  |  回复: 10

lhr1309

铜虫 (小有名气)

[求助] MATLAB程序求帮助

求帮助
这个程序我再MATLAB里运行,Kl显示为零,i显示为[],应该都有对应的值得呀,看不懂,求帮忙,非常感谢
clear;clc;
e1=[0;0.031;0.044;0.054;0.063;0.094;0.118;0.137;0.154;0.219;0.268;0.308;0.343;0.413;0.469;0.517;0.558;0.594;0.626;0.653;0.678;0.699;0.718;0.733;0.747;0.758;0.766;0.773;0.777;0.779;0.779;0.777;0.773;0.767;0.759;0.749;0.737;0.722;0.706;0.687;0.666;0.643;0.617;0.587;0.554;0.517;0.475;0.426;0.367;0.334;0.297;0.253;0.199];
B=25*(pi/180);   
B0=5*(pi/180);   
    if  e1>B
        q=B/B0;   
    else
        q=e1./B0;
        q=floor(q);
    end
      Kl=0;
      for i=1:q;
          Kl=Kl+(3*i+q);
      end
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

我是笋果

木虫 (正式写手)

你的q是个数组,i=1:q是什么意思?

发自小木虫Android客户端
2楼2019-05-25 17:00:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lhr1309

铜虫 (小有名气)

引用回帖:
2楼: Originally posted by 我是笋果 at 2019-05-25 17:00:33
你的q是个数组,i=1:q是什么意思?

q是一个正整数数组,对于其中每一个元素,比如8,都有从1到8这么8个正整数,此时对于此元素,累加之后对应着一个Kl的值。因为q是一组数,那么就应该对应着一组Kl。我想表达这个意思。但是这个代码有问题。对于累加过程,是不可以用 1:q这样的表达方式吗?
3楼2019-05-25 17:30:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

我是笋果

木虫 (正式写手)

引用回帖:
3楼: Originally posted by lhr1309 at 2019-05-25 17:30:13
q是一个正整数数组,对于其中每一个元素,比如8,都有从1到8这么8个正整数,此时对于此元素,累加之后对应着一个Kl的值。因为q是一组数,那么就应该对应着一组Kl。我想表达这个意思。但是这个代码有问题。对于累加 ...

你这么用1:q不对,还有你说的我不太明白

发自小木虫Android客户端
4楼2019-05-25 17:41:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

我是笋果

木虫 (正式写手)

引用回帖:
3楼: Originally posted by lhr1309 at 2019-05-25 17:30:13
q是一个正整数数组,对于其中每一个元素,比如8,都有从1到8这么8个正整数,此时对于此元素,累加之后对应着一个Kl的值。因为q是一组数,那么就应该对应着一组Kl。我想表达这个意思。但是这个代码有问题。对于累加 ...

你可以试试
for i=1:length(q)
for j=1:q(i)
KI=KI+(3*j+q(i))
end
end

发自小木虫Android客户端
5楼2019-05-25 17:45:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lhr1309

铜虫 (小有名气)

引用回帖:
4楼: Originally posted by 我是笋果 at 2019-05-25 17:41:53
你这么用1:q不对,还有你说的我不太明白
...

因为e1是个数组,我就想通过计算得到相对应的元素数量相同的关于Kl的一个数组
6楼2019-05-25 17:51:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lhr1309

铜虫 (小有名气)

引用回帖:
5楼: Originally posted by 我是笋果 at 2019-05-25 17:45:04
你可以试试
for i=1:length(q)
for j=1:q(i)
KI=KI+(3*j+q(i))
end
end
...

我试了一下,不行,得出来的Kl是个累加和的标量值,不是对应的一个数组,还是谢谢啦
7楼2019-05-25 17:59:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

我是笋果

木虫 (正式写手)

引用回帖:
6楼: Originally posted by lhr1309 at 2019-05-25 17:51:53
因为e1是个数组,我就想通过计算得到相对应的元素数量相同的关于Kl的一个数组...

你要是对e1每个元素都进行if个判断的话,我建议你放到循环里面单个一次进行

发自小木虫Android客户端
8楼2019-05-25 18:00:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

我是笋果

木虫 (正式写手)

for i=1:length(e1)
    if e1(i)>B
    q(i)=B/B0;
else q(i)=floor(e1(i)/B0);
end
    KI(i)=0;
for j=1:q(i)
KI(i)=KI(i)+(3*j+q(i));
end
end

» 本帖已获得的红花(最新10朵)

9楼2019-05-25 18:09:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lhr1309

铜虫 (小有名气)

送红花一朵
引用回帖:
9楼: Originally posted by 我是笋果 at 2019-05-25 18:09:10
for i=1:length(e1)
    if e1(i)>B
    q(i)=B/B0;
else q(i)=floor(e1(i)/B0);
end
    KI(i)=0;
for j=1:q(i)
KI(i)=KI(i)+(3*j+q(i));
end
end

好像你的这个程序添进去,结果可以了。非常感谢!谢谢谢谢
10楼2019-05-25 18:25:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 lhr1309 的主题更新
信息提示
请填处理意见