如下图,将A1:C6的数据转变为一列
1. 在E1输入公式=INDEX(A:C,INT(ROW(A3)/3),MOD(ROW(A1)-1,3)+1)&"",回车,下拉公式
2. 公式核心:查看行数与列数的变化规律,利用row函数作出来,这个例子中,行变化是111222333……列变化是123123123……,于是就有了INT(ROW(A3)/3),这个下拉得到的就是行变化的111222333……,MOD(ROW(A1)-1,3)+1)得到的就是列变化的123123123……,至于index函数的用法可以百度,也可以看excel的函数帮助,比较简单,不在解释,最后的&"",作用是去掉最后的0值,没有数据后,就不显示内容了,去掉的话,最后那999完事以后,下边的都是0
3. 另外使用indirect函数也是可以的,=INDIRECT("r"&INT(ROW(A3)/3)&"c"&MOD(ROW(A1)-1,3)+1,)
分三种情况:1.如果矩阵是两列,要合并为1列,可:
a=randn(4,2)
b=a(:)
2.如果矩阵是多列,且是偶数列,要合并为半偶数列,可:
a=randn(4,8)
b1=[a(:,1)a(:,2)]
for
i=1:1:(8/2-1)
b1=[b1,[a(:,2*i+1)a(:,2*i+2)]]
end
b1
3.如果矩阵是多列,且是奇数列,则不能得到合适的合并。
因为会剩1列不能合并。
不太理解你的具体要求,如果是把两行相加变成一行,而成为一个新的矩阵的话,可以这样:原矩阵a 新矩阵b 把第i行和第i+1行合并成第i行b=[a(1:(i-1),:) a(i,:)+a(i+1,:)+a((i-1):ndims(a),:)]合并列的话:b=[a(:,1:(i-1))a(:,i)+a(:,i+1)+a(:,(i-1):length(a))]欢迎分享,转载请注明来源:内存溢出
评论列表(0条)