如何对matlab矩阵中的元素连续列进行迭代平均,以创建一个逐渐增大的中点矩阵?

如何对matlab矩阵中的元素连续列进行迭代平均,以创建一个逐渐增大的中点矩阵?,matlab,matrix,linear-algebra,Matlab,Matrix,Linear Algebra,在尝试使用时,但我不熟悉迭代更新矩阵所需的Matlab语法,该矩阵包含嵌入R3中的曲面上的点,因此由3行n列组成,第一个元素为a[:,1],最后一个元素为a[:,n] 最初,将在XY平面上沿直线选择两个点。沿XY平面上直线段穿过A[:,1]和A[:,n]的多个点将使用函数f(x,y)投影到曲面上,这样我们将得到初始矩阵,第一行包含x轴上的多个坐标;第二行,Y轴上的坐标;第三行,f(x,y)各点处曲线的高度。每列为一个点 因此,如果前两列是A[:,1]和A[:,2],我想得到一个更新的矩阵,其中第

在尝试使用时,但我不熟悉迭代更新矩阵所需的Matlab语法,该矩阵包含嵌入R3中的曲面上的点,因此由3行n列组成,第一个元素为a[:,1],最后一个元素为a[:,n]

最初,将在XY平面上沿直线选择两个点。沿XY平面上直线段穿过A[:,1]和A[:,n]的多个点将使用函数f(x,y)投影到曲面上,这样我们将得到初始矩阵,第一行包含x轴上的多个坐标;第二行,Y轴上的坐标;第三行,f(x,y)各点处曲线的高度。每列为一个点

因此,如果前两列是A[:,1]和A[:,2],我想得到一个更新的矩阵,其中第一列不变,A[:,1],第二列是A[:,1]和A[:,2]的入口平均值。换句话说,列(x)的第一个条目将是第一列和第二列的第一个条目的平均值;第二个(y)和第三个(z)条目相同。在另一端,矩阵将以倒数第二列A[:,n-1]和A[:,n]的平均值结束,最后一列A[:,n]的平均值结束

然后进行一个最小化步骤,将每个柱投影到曲面f(x,y),然后再次开始相同的平均过程

注意,每一步矩阵都会增加一列

从逻辑上讲,这个过程应该在函数的一个循环中

我想问一下如何迭代实现平均步骤,例如,在第一步中,平均步骤将从

A =

   0   2   1   4
   1   3   3   2
   1   2   2   2

在接受答案后,代码如下:

A = [0, 2, 1, 4; 1, 3, 3, 2; 1, 2, 2, 2]
A = [A(:,1), (A(:,1:end-1) + A(:,2:end))/2, A(:,end)]

下一行根据您的描述更新
A
。但是,由于
A
的列数增加(如您所知),您最好预先分配它并稍微调整以下分配(这将进入
for
循环)


但是,您可能需要检查中的某些功能,例如。

以下行根据您的描述更新
A
。但是,由于
A
的列数增加(如您所知),您最好预先分配它并稍微调整以下分配(这将进入
for
循环)


但是,您可能需要从中检查一些函数,例如。

那么您的问题是什么?你是否要求别人从头开始为你编写代码?那么你的问题是什么?你是在要求别人从头开始为你写代码吗?
A = [0, 2, 1, 4; 1, 3, 3, 2; 1, 2, 2, 2]
A = [A(:,1), (A(:,1:end-1) + A(:,2:end))/2, A(:,end)]
A = [A(:,1), (A(:,1:end-1) + A(:,2:end))/2, A(:,end)];