当前位置:编程学习 > Matlab >>

高手帮忙修改一下这个Matlab程序

y=207.1 289.9 303.15 305.3 350 351 375.3 386.6 387 402.5 405.5 408 410.6 426.5 446.3 448.8 449.4 453.25 456.82 458 465.78 469 471.6 473.56 486.4 488.2 490 490 491.6 494 494.4 498.6 499 499.5 506.1 506.8 511.3 526 527 531.6 532.6 551 558.4 579 581 582 592.5 596 654.6 668 669 685 739.3 764 800 807.8 ;%给定已知的序列 A=sort(y); n=length(A); %求变差 D=zeros(n); for i=1:n for j=i:n x(i,j)=sum(A(i:j))/(j-i+1); D(i,j)= sum((A(i:j)-x(i,j)).^2); end end H=zeros(n); M=zeros(n); H(1,:)=D(1,:); %计一算所有的损失函数 for k=2:n for m=k:n R=zeros(1,m-k+1); for i=k-1:m-1 R(i-k+2)=H(k-1,i)+D(i+1,m); end t=find(R==min(R)); H(k,m)=R(t); M(k,m)=t+k-2; end end %根据图象确定分类数k x=1:54; y=H(2:55,n)'; plot(x,y,'r.-') xlabel('分类数') ylabel('L[p(n,k)]') %找出分类区间 T(k)=n; jujian(k)=A(T(k-1)+1:n) for t=k-1:1 T(t)=M(k,T(t+1)); jujian(t+1)=A(T(t)+1:T(t)) Point(t)=A(T(t)); end jujian(1)=A(1:T(1))
答案:有几个问题:
(1)给y赋数组应用方括号。
(2)因R中有两个最小值,因而t=find(R==min(R))得出的是一个数组而不是一个数值。
(3)jujian(k)=A(T(k-1)+1:n)中左边是一个元素,而右边是一个数组,不匹配。
(4)jujian(1)=A(1:T(1))中T(1)=0,因此A(1:0)语法上错误。可能其中T的算法有误
y=[207.1
289.9
303.15
305.3
350
351
375.3
386.6
387
402.5
405.5
408
410.6
426.5
446.3
448.8
449.4
453.25
456.82
458
465.78
469
471.6
473.56
486.4
488.2
490
490
491.6
494
494.4
498.6
499
499.5
506.1
506.8
511.3
526
527
531.6
532.6
551
558.4
579
581
582
592.5
596
654.6
668
669
685
739.3
764
800
807.8];
;%给定已知的序列

A=sort(y);
n=length(A);
%求变差
D=zeros(n);
for i=1:n
for j=i:n
x(i,j)=sum(A(i:j))/(j-i+1);
D(i,j)= sum((A(i:j)-x(i,j)).^2);
    end
end
H=zeros(n);
M=zeros(n);
H(1,:)=D(1,:);
%计一算所有的损失函数
for k=2:n
for m=k:n
R=zeros(1,m-k+1);
for i=k-1:m-1
R(i-k+2)=H(k-1,i)+D(i+1,m);
end
t=find(R==min(R));
H(k,m)=min(R);
M(k,m)=t(1)+k-2;
end
end
%根据图象确定分类数k
x=1:54;
y=H(2:55,n)';
plot(x,y,'r.-')
xlabel('分类数')
ylabel('L[p(n,k)]')
%找出分类区间
T(k)=n;
jujian(:,k)=A(T(k-1)+1:n);
for t=k-1:1
T(t)=M(k,T(t+1));
jujian(:,t+1)=A(T(t)+1:T(t));
Point(t)=A(T(t));
end
jujian(:,1)=A(1:T(1));

上一个:使用matlab绘制曲面z=1000*[ln(x)/ln(y)],求代码。。。。
下一个:一个matlab语句分析

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,