yuanwei 发表于 2006-8-7 17:16

数组运算问题

for s0=0:0.01:2;
r0=1;
Tz=5;
bg=pi/2;
a=1/cosh(Tz);
x=r0*sqrt(1+a)/sqrt(1-a);
ifs0 < x
one=s0;
else
    one=a*s0+r0.*sqrt(1-a.^2);   
end
n=s0*100+1;
hold on;
C(n)=one;
plot(s0,one);
end
以上程序把值付给c,我咋实现不了哪。有别的办法也行,多谢帮忙。

Antique 发表于 2006-8-7 21:16

第一行用的等分隔点,并不是“恰好”<0.##>
n=s0*100+1;   这一行不会恰好产生整数的。
试一下: C(round(n)) = one;

ps:这个程序的错误提示很明显的:
Subscript indices must either be real positive integers or logicals.
Error in ==> \MATLAB6.5\work\temp.m
On line 14==> C(n)=one;
自己在这儿设置一个断点,一行一行调试。
页: [1]
查看完整版本: 数组运算问题