Arrays Matlab:使用列向量的每个元素进行一系列计算(迭代?)

Arrays Matlab:使用列向量的每个元素进行一系列计算(迭代?),arrays,matlab,vector,for-loop,iteration,Arrays,Matlab,Vector,For Loop,Iteration,theta1=theta(:,1)//这是从18x30矩阵中提取的数据列向量,θ1为18x1 然后从这里开始,我需要通过下面的计算,一次一个地遍历18个元素中的每一个: nx =((cos(theta1(1))^2)/(1.5^2) + ((sin(theta1(1))^2)/(1.7^2)))^(-1/2); 在这里,我使用“theta1(1)”选择了第一个元素,但理想情况下,我希望以某种方式使用for循环,以便可以对 然后产生另一个18x1矩阵“nx”。我尝试过使用for循环,但无法使其正

theta1=theta(:,1)
//这是从
18x30
矩阵中提取的数据列向量,θ1为18x1

然后从这里开始,我需要通过下面的计算,一次一个地遍历18个元素中的每一个:

nx =((cos(theta1(1))^2)/(1.5^2) + ((sin(theta1(1))^2)/(1.7^2)))^(-1/2);
在这里,我使用“
theta1(1)
”选择了第一个元素,但理想情况下,我希望以某种方式使用for循环,以便可以对 然后产生另一个18x1矩阵“nx”。我尝试过使用for循环,但无法使其正常工作

然后,我想在另一个计算中使用“nx”的18个元素中的每一个来获得另一个变量:

d = (2*pi*(nx-1.5)*0.000018)/0.000000555;
所以,我正在寻找某种通用的for循环或任何其他合适的方法,允许我进行这种类型的计算,我使用数组中的每个元素,将其插入到公式中,并生成另一个带有计算结果的数组

提前谢谢

尝试使用

nx =((cos(theta1(:)).^2)/(1.5^2) + ((sin(theta1(:)).^2)/(1.7^2))).^(-1/2);
d = (2*pi*(nx(:)-1.5)*0.000018)/0.000000555;

这就是你要找的吗

theta = rand(18,30);
theta1 = theta(:,1);
nx =(cos(theta1.^2)/(1.5.^2) + (sin(theta1.^2)/(1.7^2)).^(-1/2))
d = (2*pi*(nx-1.5)*0.000018)/0.000000555

如果在
^
运算符之前使用
,向量将按元素进行平方运算(这同样适用于
*
/
)。查找

你能详细说明for循环有什么问题吗?我不知道如何做一个for循环,该循环将为数组“theta1”中的所有18个值计算“nx”,这非常有效,而且非常简单;非常感谢。谢谢,我忘了接线员。