matlab中A(:,1)'表示将二维矩阵A的第一列转置为行向量。详细说明如下:
A(x,y)表示二维矩阵第x行第y列位置的元素,x为:则表示所有的行。因此,A(:,1)就表示A的第1列的所有元素,这是一个列向量。
矩阵A右上角加一短撇(')即A'表示A的转置矩阵——交换A的行列位置(当A为复数矩阵,是共轭转置),因此A(:,1)'表示将矩阵A的第一列转置,最终就得到了一个行向量。
下图是以上文字说明的matlab代码演示结果:
如图为实例,即是指矩阵A第一列的转置矩阵。其中符号:表示列所有元素,1表示第一列,‘表示转置。如果A(:,2)'则为第二列,A([1 2],1)'则为第一列第一二行的转置。希望可以帮到你。
问题一:1:H(1)表示1,2,3,4……H(1)。其中H(1)应该是个整数,就是取1到H(1)的所有整数。
问题二:这个的优先级不是你想的那样的。而应该是(50+1):H(1)也就是说从51到H(1)。
问题三:镜像操作只有C是,不仅是左右镜像,而且是上下镜像。
执行下边的代码:
J= imread('greens.jpg');
J=double(J);
H=size(J);
figure;subplot(121);imshow(uint8(J));
C(1:H(1),1:H(2),1:H(3))=J(H(1):-1:1,H(2):-1:1,1:H(3));%镜像
subplot(122);imshow(uint8(C));
你可以看看效果:
冒号指该维的全部
如矩阵A=[1 2 3 4
5 6 7 8]
那么A(:,2),行坐标为冒号,则表示所有行,2是列坐标,则A(:,2)代表第二列的所有行,也就是列向量:[2 6]'
所以matlab T=(:,:,1)代表第一维、第二维的所有数据,第三维的第一个
T是个三维矩阵
1:3代表该维的第一个数到第三个数
还是之前的矩阵
A(:,1:3)
第一维是全部数据,第二维是第1个数到第三个数,也就是第一列到第三列的所有行
[1 2 3
5 6 7]
在matlab中,a(:, 1:3)=[]表示将数组a的第1到第3列删除。
第一个冒号( : )表示取数组a的所有行;
1:3表示取数组a的第1到第3列。
具体的含义可以参考如下实例:
a=
[1, 2, 3, 4, 5;
2, 3, 4, 5, 6;
3, 4, 5, 6, 7]; % 数组a的大小为3*5
a(:, 1:3)=[]; % 执行完该语句后,数组a为:
a=
[4, 5;
5, 6;
6, 7]; % 此时数组a的大小为3*2