当前位置:首页>开发>正文

问一个matlab二重循环的问题 matlab 双循环的问题

2023-04-22 10:53:40 互联网 未知 开发

 问一个matlab二重循环的问题 matlab 双循环的问题

问一个matlab二重循环的问题

没怎么细看:
只看到:
for L1=1Tx %这个应当是昌号:,不是分号
for L2=1:Ty
r_temp(L1,L2)=sqrt((x11(L1))^2 (y11(L2))^2)
end
end

matlab 双循环的问题

看不懂你的式子,不过你在for循环里面用的mean函数,其实是对一个数字进行求均值,这个肯定不是你所期望的。
我帮你改了下,对于给定的一个p1值,可以得到一个c值

a = randn(1,100)
b = randn(1,100)
c = zeros(1,40)
for p1 = 1:40
h = complex(a,b) % 此时h为一个向量
c(p1) = mean(log2(1 (10^(p1/10))*(abs(h).^2))) % 保存对应c值
end

matlab while循环

data=handles.data
k1=0
k2=0
while (k1==k2)
M=randperm(12)
n1=M(1)
n2=M(2)
n3=M(3)
P=data(n1,:)
Q=data(n2,:)
R=data(n3,:)
k1=(Q(2)-P(2)/Q(1)-P(1))
k2=(R(2)-P(2)/R(1)-P(1))
end
data=(P,Q,R)

matlab 的循环问题(100分)

第一次循环时l1,l2,l3为sym
由于第一次循环后l1,l2,l3已经被赋值变成数值非sym,出错那是必须的

所以改为

clear all
clc

syms flag x x1 x2 x3 l1 l2 l3 m n Pb P11 P12 P13 P7 P8 P9 l1 l2 l3
x=0
y=0
z=60
a=0
b=0
c=0
R=2.3
z1=60
z2=60
z3=60
L=0.4
T=0.25
flag=0
Ra=[cos(a)*cos(b),cos(a)*sin(b)*sin(c)-sin(a)*cos(c),cos(a)*sin(b)*cos(c) sin(a)*sin(c)
sin(a)*cos(b),sin(a)*sin(b)*sin(c) cos(a)*cos(c),sin(a)*sin(b)*cos(c)-cos(a)*sin(c)
-sin(b),cos(b)*sin(c),cos(b)*cos(c)]

P1=[-R/4,-R/4*tan(pi/6),0]%动平台顶点7点在动坐标系的坐标
P2=[R/4,-R/4*tan(pi/6),0] %动平台顶点8点在动坐标系的坐标
P3=[0,R/2*cos(pi/6)*2/3,0] %动平台顶点9点在动坐标系的坐标
P7=[-l1*sin(pi/6),-R*cos(pi/6)*2/3 l1*cos(pi/6),z1] %移动副L1对应点的坐标
P8=[R/2-l2*cos(pi/3),R/2*tan(pi/6)-l2*sin(pi/3),z2]%移动副L2对应点的坐标
P9=[-R/2 l3,R/2*tan(pi/6),z3] %移动副L3对应点的坐标
e=R/2-L-T
f=R/2-L T

while 1
Pb=[x,y,z] %动平台原点在定平台坐标系的坐标
P11=Ra*P1 Pb
x1=sym(sqrt(sum((P11-P7).^2))-L)
ll1=double(solve(x1,l1))
m=ll1(1)
n=ll1(2)
if (m<e|m>f)&(n<e|n>f)
flag=1
end
P12=Ra*P2 Pb
x2=sym(sqrt(sum((P12-P8).^2))-L)
ll2=eval(solve(x2,l2))
m=ll2(1)
n=ll2(2)
if (m<e|m>f)&(n<e|n>f)
flag=1
end
P13=Ra*P3 Pb
x3=sym(sqrt(sum((P13-P9).^2))-L)
ll3=eval(solve(x3,l3))
m=ll3(1)
n=ll3(2)
if (m<e|m>f)&(n<e|n>f)
flag=1
end
if (flag==1) break
end
x=x 0.001

end

matlab 关于循环问题 :

按你现在的程序结构,主函数一共调用了temp1三次,返回三个xyz(只不过前两个实际上没有起任何作用),第三次调用时i=3,也就是对xyz的第3行赋值,前两行没有赋值,就会以0填充。

最新文章