matlab :Subscript indices must either be real positive integ
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/22 12:42:52
matlab :Subscript indices must either be real positive integers or logicals
n(1)=1;
n(2)=2;
n(3)=3;
n(4)=4;
n(5)=1;
h(1)=0.02;
h(2)=0.03;
h(3)=0.04;
for i=1:3;
sita(1)=1;
sita(i+1)=asin(sin(sita(i))*n(i)/n(i+1));
cos(sita(i))=(1-sin(sita(i))^2)^0.5;
f=1.6e10;
namta=3e8/f;
fai=(4*pi/namta)*n(i)*h(i)*cos(sita(i));
Mt=[];
Mt(1,1)=cos(fai);
Mt(1,2)=-sqrt(-1)*sin(fai)/n(i);
Mt(2,1)=-sqrt(-1)*sin(fai)*n(i);
Mt(2,2)=cos(fai);
M=[1 0;0 1];
Mt=M*Mt;
end
H=[1 n(4)];
Y=Mt*H;
K=Y(2)/Y(1);
r=(n(1)*cos(sita(1))-K*cos(sita(i+1)))/(n(1)*cos(sita(1))+K*cos(sita(i+1)));
T=1-r^2;
错误提示:
Subscript indices must either be real positive integers or logicals.
Error in sanceng (line 22)Mt(1,1)=cos(fai);
这个程序要怎么改啊 这行就没下标啊
n(1)=1;
n(2)=2;
n(3)=3;
n(4)=4;
n(5)=1;
h(1)=0.02;
h(2)=0.03;
h(3)=0.04;
for i=1:3;
sita(1)=1;
sita(i+1)=asin(sin(sita(i))*n(i)/n(i+1));
cos(sita(i))=(1-sin(sita(i))^2)^0.5;
f=1.6e10;
namta=3e8/f;
fai=(4*pi/namta)*n(i)*h(i)*cos(sita(i));
Mt=[];
Mt(1,1)=cos(fai);
Mt(1,2)=-sqrt(-1)*sin(fai)/n(i);
Mt(2,1)=-sqrt(-1)*sin(fai)*n(i);
Mt(2,2)=cos(fai);
M=[1 0;0 1];
Mt=M*Mt;
end
H=[1 n(4)];
Y=Mt*H;
K=Y(2)/Y(1);
r=(n(1)*cos(sita(1))-K*cos(sita(i+1)))/(n(1)*cos(sita(1))+K*cos(sita(i+1)));
T=1-r^2;
错误提示:
Subscript indices must either be real positive integers or logicals.
Error in sanceng (line 22)Mt(1,1)=cos(fai);
这个程序要怎么改啊 这行就没下标啊
n=[1 2 3 4 1];h=[0.02 0.03 0.04];
for i=1:3;
sita(1)=1;
sita(i+1)=asin(sin(sita(i))*n(i)/n(i+1));
sita(i)=acos((1-sin(sita(i))^2)^0.5); %用反余弦
f=1.6e10;namta=3e8/f;
fai=(4*pi/namta)*n(i)*h(i)*cos(sita(i));
Mt=[];
Mt(1,1)=cos(fai);
Mt(1,2)=-sqrt(-1)*sin(fai)/n(i);
Mt(2,1)=-sqrt(-1)*sin(fai)*n(i);
Mt(2,2)=cos(fai);
M=[1 0;0 1];
Mt=M.*Mt; %这里要用点乘
end
H=[1 n(4); 1 1]; %这里要将 H 定义为 2x2 矩阵
Y=Mt.*H; %用点乘
K=Y(2)/Y(1);
r=(n(1)*cos(sita(1))-K*cos(sita(i+1)))/(n(1)*cos(sita(1))+K*cos(sita(i+1)));
T=1-r^2;
再问: 非常感谢 Mt=M.*Mt; Y=Mt.*H; 改了 Y是2*1的矩阵。可是错误提示还是一样的。运行您给的程序后出现一样的错误提示 Subscript indices must either be real positive integers or logicals. Error in Untitled (line 10)Mt(1,1)=cos(fai); 这是为什么呀
再答: 运行没有问题: >> n=[1 2 3 4 1];h=[0.02 0.03 0.04]; for i=1:3; sita(1)=1; sita(i+1)=asin(sin(sita(i))*n(i)/n(i+1)); sita(i)=acos((1-sin(sita(i))^2)^0.5); %用反余弦 f=1.6e10;namta=3e8/f; fai=(4*pi/namta)*n(i)*h(i)*cos(sita(i)); Mt=[]; Mt(1,1)=cos(fai); Mt(1,2)=-sqrt(-1)*sin(fai)/n(i); Mt(2,1)=-sqrt(-1)*sin(fai)*n(i); Mt(2,2)=cos(fai); M=[1 0;0 1]; Mt=M.*Mt; %这里要用点乘 end H=[1 n(4); 1 1]; %这里要将 H 定义为 2x2 矩阵 Y=Mt.*H; %用点乘 K=Y(2)/Y(1); r=(n(1)*cos(sita(1))-K*cos(sita(i+1)))/(n(1)*cos(sita(1))+K*cos(sita(i+1))); T=1-r^2; >> disp(fai) 77.1963 >>
for i=1:3;
sita(1)=1;
sita(i+1)=asin(sin(sita(i))*n(i)/n(i+1));
sita(i)=acos((1-sin(sita(i))^2)^0.5); %用反余弦
f=1.6e10;namta=3e8/f;
fai=(4*pi/namta)*n(i)*h(i)*cos(sita(i));
Mt=[];
Mt(1,1)=cos(fai);
Mt(1,2)=-sqrt(-1)*sin(fai)/n(i);
Mt(2,1)=-sqrt(-1)*sin(fai)*n(i);
Mt(2,2)=cos(fai);
M=[1 0;0 1];
Mt=M.*Mt; %这里要用点乘
end
H=[1 n(4); 1 1]; %这里要将 H 定义为 2x2 矩阵
Y=Mt.*H; %用点乘
K=Y(2)/Y(1);
r=(n(1)*cos(sita(1))-K*cos(sita(i+1)))/(n(1)*cos(sita(1))+K*cos(sita(i+1)));
T=1-r^2;
再问: 非常感谢 Mt=M.*Mt; Y=Mt.*H; 改了 Y是2*1的矩阵。可是错误提示还是一样的。运行您给的程序后出现一样的错误提示 Subscript indices must either be real positive integers or logicals. Error in Untitled (line 10)Mt(1,1)=cos(fai); 这是为什么呀
再答: 运行没有问题: >> n=[1 2 3 4 1];h=[0.02 0.03 0.04]; for i=1:3; sita(1)=1; sita(i+1)=asin(sin(sita(i))*n(i)/n(i+1)); sita(i)=acos((1-sin(sita(i))^2)^0.5); %用反余弦 f=1.6e10;namta=3e8/f; fai=(4*pi/namta)*n(i)*h(i)*cos(sita(i)); Mt=[]; Mt(1,1)=cos(fai); Mt(1,2)=-sqrt(-1)*sin(fai)/n(i); Mt(2,1)=-sqrt(-1)*sin(fai)*n(i); Mt(2,2)=cos(fai); M=[1 0;0 1]; Mt=M.*Mt; %这里要用点乘 end H=[1 n(4); 1 1]; %这里要将 H 定义为 2x2 矩阵 Y=Mt.*H; %用点乘 K=Y(2)/Y(1); r=(n(1)*cos(sita(1))-K*cos(sita(i+1)))/(n(1)*cos(sita(1))+K*cos(sita(i+1))); T=1-r^2; >> disp(fai) 77.1963 >>
matlab :Subscript indices must either be real positive integ
matlab 出现Subscript indices must either be real positive inte
MATLAB出现?Subscript indices must either be real positive inte
matlab出现? Subscript indices must either be real positive int
? Subscript indices must either be real positive integers or
Subscript indices must either be real positive integers or l
MATLAB程序错误?Subscript indices must either be real positive in
用matlab图像配准中出现Subscript indices must either be real positive
问一下在matlab中出现Subscript indices must either be real positive
MATLAB里出现Subscript indices must either be real positive inte
matlab为什么出现 Subscript indices must either be real positive i
之后的运行又出现:Subscript indices must either be real positive inte