有没有大哥大姐帮忙看一下这个matlab代码为什么是错的,其中k不进行循环,但是打印出来它是迭代的,这是为什么呢?求求了
Xi = [1.5, 0;0 ,1.2];
mu=0.1; %时间步长
T=100; % 最大时间步
N=100;%仿真步数
t=0:mu:(N-1)*mu;%时间向量
% 更新状态
fprintf('k = %d\n', k); % 打印 k 的值
for period=1:1
for k = 6:T-2
f1=@(k)0.1*tanh(k);% 定义激活函数
f2=@(k)0.2*tanh(k);% 定义激活函数
u1 =0; %定义输入
u2 =[0.2*cos(k),0.1*sin(k)];%定义输入
%%%%%%%%%%%%%%%%
c1 =@(k) 1.90 + 0.80*tanh(k);
c2 =@(k) 1.85+0.45*tanh(2*k);
d1 =@(k) 1 + tanh(k);
d2 =@(k) 1.10 + 0.42*tanh(2*k);
a11=@(k) 0.15 + 0.08 * sin(k);
a12=@(k) 0.10 + 0.17 * sin(2*k);
a21=@(k) 0.16 + 0.10 * sin(3*k);
a22=@(k) 0.35 + 0.01 * sin(4*k);
b11=@(k) 0.17 + 0.02 * cos(k);
b12=@(k) 0.10 + 0.20 * cos(2*k);
b21=@(k) 0.15 + 0.50 * cos(3*k);
b22=@(k) 0.06 + 0.13 * cos(4*k);
%%%%%%%%%%%
Cshang=[c1(k),0;0,c2(k)];
Dshang=[d1(k),0;0,d2(k)];
Ashang=[a11(k),a12(k);a21(k),a22(k)];
Bshang=[b11(k),b12(k);b21(k),b22(k)];
%%%%%%%%%%%
Cxing=Cshang-2*eye(2);
Dxing=Dshang+eye(2)-Cshang;
Axing=Ashang;
Bxing=Bshang;
x=zeros(2,N);
h1=1; %定义时滞h(k)
h2=3;
% h= randi([1, min(5,k-1)]);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% x1_delay = k-n1; % 确保索引至少为 1
% x2_delay = k-n2;
x(1,k+2)= -Cxing(1,1)*x(1,k+1)-Dxing(1,1)*x(1,k) ...
+Axing(1,1)*f1(x(1,k))+Axing(1,2)*f2(x(2,k)) ...
+Bxing(1,1)*f1(x(1,k-h1))+Bxing(1,2)*f2(x(2,k-h2))+u1;
x(2,k+2)= -Cxing(2,2)*x(2,k+1)-Dxing(2,2)*x(2,k) ...
+Axing(2,1)*f1(x(1,k))+Axing(2,2)*f2(x(2,k)) ...
+Bxing(2,1)*f1(x(1,k-h1))+Bxing(2,2)*f2(x(2,k-h2))+u1;
fprintf('k = %d\n', k); % 打印 k 的值
end
%subplot(2, 1, 1);
plot(t, x(1, 1:N), 'c', 'LineWidth', 2);hold on;
plot(t, x(2, 1:N), 'r', 'LineWidth', 2);grid on;
xlabel('time t');
ylabel('x(t)');
title('x_1(t) and x_2(t) state of u1');
end
fprintf('k = %d\n', k); % 打印 k 的值