24小时热门版块排行榜    

查看: 1928  |  回复: 10

ysu_Amanda

金虫 (著名写手)

[求助] 实在是看不出这段matlab程序里哪里出错了,请大家帮忙看看!

for L=1:c
    for i=1:Tn(L)     
        if L==1
            sum_index=i;
        else
            sum_index=sum(Tn(1:L-1))+i;
        end
        y=D(:,sum_index);
        if sum_index==1
            re_index=2:n;
        elseif sum_index==n
            re_index=1:n-1;
        else
            re_index=[1:sum_index-1,sum_index+1:n];
         end
end
end
如上第一次循环中sum_index应该为1,re_index应该为2:n.但一运行就出错显示re_index根本没被赋值,是空的。这是怎么回事,我看了好多遍程序实在看不出哪里有错误,希望大家多帮忙啊!
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

要勇敢,要自信!
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

teshuvah

新虫 (初入文坛)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
ysu_Amanda: 金币+1 2013-05-12 18:24:30
jjdg: 金币+1, 感谢参与 2013-05-13 01:37:48
你设个断点一步一步跟进去看看
2楼2013-05-12 16:38:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ysu_Amanda

金虫 (著名写手)

引用回帖:
2楼: Originally posted by teshuvah at 2013-05-12 16:38:12
你设个断点一步一步跟进去看看

我这个是函数里的一小段,设置了显示sum_index的值是没问题的,就是re_index不知道为什么会赋不上值,感觉程序挺简单不应该啊
要勇敢,要自信!
3楼2013-05-12 16:51:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
ysu_Amanda: 金币+1, ok,试试 2013-05-12 18:24:19
jjdg: 金币+1, 辛苦了 2013-05-13 01:37:59
if有else块,re_index肯定会被赋值,也就是下面这行肯定会被运行到
            re_index=[1:sum_index-1,sum_index+1:n];
但是你说没有值,在这行前面加2句:
sum_index
n
然后运行看看输出什么值.
因为虽然在matlab中a:b是生成a到b的序列,但是如果b<a,就会生成空矩阵.
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
4楼2013-05-12 17:50:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ausir

木虫 (正式写手)

【答案】应助回帖

★ ★ ★
感谢参与,应助指数 +1
jjdg: 金币+2, 辛苦了 2013-05-13 01:38:11
ysu_Amanda: 金币+1, 有帮助, 谢谢!我发现我的D有问题! 2013-05-13 08:12:39
从Debug 单步跟踪的结果来看,第一次运行的结果是对的。
re_index的值是[2:n]。
示例如下: 不知道D的用途,将其屏蔽,本函数简化成一个加法函数。

function [sum_index, re_index]=t1(Tn,c)
% This is a test function
n=length(Tn);
if c>=n
    c=n;
end
for L=1:c
     for i=1:Tn(L)     
         if L==1
             sum_index=i;
         else
             sum_index=sum(Tn(1:L-1))+i;
         end
        % y=D(:,sum_index);
         if sum_index==1
             re_index=2:n;
         elseif sum_index==n
             re_index=1:n-1;
         else
             re_index=[1:sum_index-1,sum_index+1:n];
          end
end
end
end
使用 x=[5,10,15,20,25,30] c=6, 计算[ssx,sssc]=t1(x,c),取得的结果是 105, 以及 1-104的输出。
单步跟踪正常。
5楼2013-05-12 21:37:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hoddescle

木虫 (小有名气)

老和部队

【答案】应助回帖


感谢参与,应助指数 +1
jjdg: 金币+1, 辛苦了 2013-05-13 01:38:21
if L==1
             sum_index=i
         else
sum_index=sum(Tn(1:L-1))+i
         end
这一句,是对你的Tn的加和,这个值会不会超过n使得
if sum_index==1
             re_index=2:n
         elseif sum_index==n
             re_index=1:n-1
         else
             re_index=[1:sum_index-1,sum_index+1:n]
          end
前两个判断返回值为0,进入else
但是sum_index+1:n这个矩阵是个空矩阵,因为前面比后面大。


从程序上我只能理解到这个位置
意见作为参考,本人不是学语言的。
忠贤随明主,奸佞觅昏君
6楼2013-05-12 22:43:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

duotojh

金虫 (小有名气)

【答案】应助回帖

好像在 if 和 循环语句块中出现向量赋值语句时,
该向量必须要先在语句块之前(也在语句块的外面)初始化为其分配空间
7楼2013-05-29 23:05:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

duotojh

金虫 (小有名气)

引用回帖:
7楼: Originally posted by duotojh at 2013-05-29 23:05:17
好像在 if 和 循环语句块中出现向量赋值语句时,
该向量必须要先在语句块之前(也在语句块的外面)初始化为其分配空间

如果是标量则不需先初始化
8楼2013-05-29 23:06:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ysu_Amanda

金虫 (著名写手)

引用回帖:
8楼: Originally posted by duotojh at 2013-05-29 23:06:48
如果是标量则不需先初始化...

谢谢!
要勇敢,要自信!
9楼2013-05-30 08:53:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lauysche

禁虫 (著名写手)

本帖内容被屏蔽

10楼2013-05-30 16:39:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 ysu_Amanda 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 欢迎发来filecode的Mz6后的代码验证其规律 +32 医学老男孩 2026-08-13 72/3600 2026-08-16 13:15 by 医学老男孩
[基金申请] 咱们一起用铁证分析2026国家社科基金中标与否 +7 启萌科技 2026-08-12 26/1300 2026-08-16 12:35 by 启萌科技
[基金申请] 我的国基提前知道中了,可是同事的操作让我实在接受不了,怎么会有这样的人 +11 家与远方 2026-08-10 16/800 2026-08-16 10:28 by ray43
[基金申请] 有时候,自然基金真的不能太认真 (我的申报经验) +10 majunge000 2026-08-11 12/600 2026-08-16 08:18 by xli1984
[精细化工] 招聘 金属平磨液,抛光液研发工程师 +3 小天0311 2026-08-14 3/150 2026-08-16 07:31 by H9PLUS
[基金申请] 时间戳又变了8-15 +12 archvillain 2026-08-15 23/1150 2026-08-15 20:47 by foyo404
[基金申请] filecode +8 cratir 2026-08-14 12/600 2026-08-15 18:08 by zyfgau
[基金申请] 小木虫上这么多卖论文的,真有人买论文么?感觉没必要啊 +12 Tide man 2026-08-10 13/650 2026-08-15 16:34 by 氺木
[基金申请] 各位道友,我要去昆明玩几天,回来见。 +7 Tide man 2026-08-14 8/400 2026-08-15 01:11 by arzu_hma
[基金申请] 是这周出结果还是下周出结果? +4 yuleib84 2026-08-11 4/200 2026-08-14 23:05 by lfy8008
[基金申请] 奇怪,两个人的filecode固定段从头到尾一模一样 +8 布布和一二 2026-08-10 11/550 2026-08-14 14:58 by Equinoxhua
[基金申请] 重要来源:本周末出结果 +10 瞬息宇宙 2026-08-12 10/500 2026-08-13 15:46 by likettle
[基金申请] 不应该看fileCode +7 且听虎啸 2026-08-12 9/450 2026-08-13 14:27 by flydreamws
[基金申请] Filecode 又变了,巨变 +3 WH3796 2026-08-12 4/200 2026-08-13 14:13 by 小木虫6752397
[基金申请] 分享一下我之前已中青C的计划书的filecode +4 布布和一二 2026-08-11 5/250 2026-08-13 12:56 by cratir
[基金申请] 结合人工智能,周易传统文化,filecode打分制来了,3分以上希望很大。 +3 Tide man 2026-08-12 4/200 2026-08-13 08:35 by ZJTJZ
[基金申请] 综述论文作为代表作会不会影响评审专家的印象分? +11 yufeiwaner 2026-08-09 13/650 2026-08-12 08:17 by yufeiwaner
[基金申请] 确定了,国自然21号放榜 +6 布布和一二 2026-08-10 7/350 2026-08-10 19:15 by 2000zf36392
[基金申请] 据悉今年马上要出结果了 +7 瞬息宇宙 2026-08-10 8/400 2026-08-10 12:42 by Vivilian
[基金申请] 面上项目filecode邪修 +5 西山十月 2026-08-09 7/350 2026-08-10 07:32 by 仁砚薪传
信息提示
请填处理意见