作业帮 > 综合 > 作业

matlab for循环语句

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/27 18:18:30
matlab for循环语句
clc;
close all;
clear all;
x=1;y=1;
T=1;
A=[3,4,5];
for i=1:3
N=A(i);
t=x;x=x+y;y=t+2*y;
while =1&y~=1;
T=T+1;
if x>N
x=mod(x,N);
end
if y>N
y=mod(y,N);
end
t=x;x=x+y;y=t+2*y;
end
disp(T);
end
我本意是想调用 数组A内的数来计算不同阶数N对应的 arnold置乱周期,所以添加了一个for语句,结果计算的结果与不添加for语句时不一致,请问该怎么修改呀.
未添加for语句时
clc;
close all;
clear all;
x=1;y=1;
T=1;
N=3;
t=x;x=x+y;y=t+2*y;
while =1&y~=1;
T=T+1;
if x>N
x=mod(x,N);
end
if y>N
y=mod(y,N);
end
t=x;x=x+y;y=t+2*y;
end
disp(T);
明明一样的.怎么不一样了、.
再问: 正确结果应该是4、3、10,可是用我的for语句调用N的值,显示的是4、6、15

再答: for i=1:3

x=1;y=1;
T=1;
A=[3,4,5];

N=A(i);
t=x;x=x+y;y=t+2*y;
while x~=1&y~=1;
T=T+1;
if x>N
x=mod(x,N);
end
if y>N
y=mod(y,N);
end
t=x;x=x+y;y=t+2*y;
end
disp(T);
clear
end

因为第二次再运行你没清除变量