matlab将一个矩阵按照某一列的元素分成几个矩阵
matlab中取一个矩阵的一部分方法如下:
格式A(m,n),用于提取矩阵A中符合m,n要求的部分
1、提取某个元素,则m,n为数字标量,如A(2,3)为第二行第三列的元素。
2、提取某行某列
A(:,n)提取第n列的所有元素,如A(:,3)提取第三列的所有元素;
A(m,:)提取第m行的所有元素,如A(3,:)提取第三行的所有元素;
3、提取任意的某部分并重新组成新的矩阵,连续或不连续,单调或不单调
数字指定:A([1 2 3 4],[2 3]) 返回1 2 3 4行2 3 列的数据;
步长指定:A(1:2:end,:) A(2:2:end,:)分别提取矩阵A的奇数行和偶数行数据;
A(end:-1:1,:) A(:,end:-1:1)分别返回A矩阵行倒序和列倒序的矩阵
变量指定:A(B(:,1),:),其中B的第一列含有数据,用来指定取矩阵A的哪些行。
4、变量指定,假设一个矩阵X1中存储的是坐标,用矩阵X1的坐标访问矩阵labels_left中对应的元素:
for i = 1:size(X1,1)
x = labels_left(X1(i,2),X1(i,1));%匹配对1在左图中的label数
end
扩展资料:
matlab中取一个矩阵的一部分的用法:
1、提取大矩阵的一列、一行元素:
一列元素: A(:,j)表示提取A矩阵的第j列全部元素
一行元素: A(i,:)表示提取A矩阵的第i行元素,
于是我们有,A(i, j)表示提取A矩阵的第i行第j列的元素。
2、提取多行多列元素
多行元素: A(i:i+m,:)表示提取A的第i行到第i+m行的元素。
多列元素: A(:,j:j+n)表示提取A的第j列到第j+n列的元素。
提取块: A(i:i+m, j:j+n)表示的是mxn的一个子块的元素。
参考资料:
百度百科-matlab
升序排列:
[~,I]=sort(A(:,5));%假如对第5列进行升序排列
A=A(I,:);%这样排列就完成了
降序排列:
[~,I]=sort(-A(:,2));%假如对第2列进行升序排列
A=A(I,:);%这样排列就完成了
希望我的回答能够帮到你
4 2 8 5 6
2 5 7 5 6
1 5 3 6 7
2 4 3 1 5
3 4 0 9 3];
m2 = m(:,2);
m2 = unique(m2);
[r,c] = size(m2);
for k = 1:r
L = m(:,2)==m2(k);
tm = mat2str(m(L,:));
ss = [char(64+k) '=' tm];
eval(ss);
end;
A =
1 2 3 4 5
4 2 8 5 6
B =
2 4 3 1 5
3 4 0 9 3
C =
2 5 7 5 6
1 5 3 6 7
matlab将一个矩阵按照某一列的元素分成几个矩阵
1 5 3 6 7
matlab 中,怎么让一个矩阵按某一列排列,并且行也跟着变动?
在matlab中让矩阵按某一列排列,需要用到排序算法对某一列数据排序,然后在排序算法的if判断句中,依次交换矩阵两行内容。以题目中矩阵为例,可以利用冒泡法对第三列数据排序,实现程序如下:a=[5 7 8;4 6 1;8 0 7];n=length(a);b=[];for i=1:n-1 for j=1:n-i if(a(j,3)>a(...
matlab 中,怎么让一个矩阵按某一列排列,且行也跟着变动?
可以使用sortrows函数:sortrows(A,k) 将矩阵A按第k列排序,每一行跟着变动。升序排列:[~,I]=sort(A(:,5));%假如对第5列进行升序排列,A=A(I,:);%这样排列就完成了。MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视...
matlab 中,怎么让一个矩阵按某一列排列,并且行也跟着变动
1、打开MATLAB软件,可以使用ortrows函数,在命令行窗口内打入help sortrows,就会出现以下画面,就如下图所示,根据出现的提示进行下一步进程。2、有了函数之后,这时需要创建一个矩阵,矩阵a为3行3列,可以输入“sortrows(a,1)”,就会看到以下画面,如下图所示,这个函数是对整个矩阵按第一列进行升序...
Matlab怎么把一个矩阵的列按某行元素的大小排列
比如把A的每一列按照A的第一行元素大小排列。[~,idx]=sort(A(1,:));A=A(:,idx)
matlab中sort的函数怎么实现像excel中使一个MXN的矩阵按照第一列排序...
前面的算法时间要短,效果是一样的 Elapsed time is 0.000110 seconds.Elapsed time is 0.000259 seconds.ans = 0 用个小矩阵检测下 a=magic(5);tic [b,pos]=sort(a(:,1));aa=a(pos,:)toc tic A=sortrows(a,1)toc det(aa-A)a = 17 24 1 8 15 23 5 7 ...
matlab中怎么将一列数据按照顺序平均分成矩阵。有快速的方法吗?
假设x=[1;2;3;4;5;6;7;8;9;10;11;12...]是你的数据,下面的代码可以实现你的功能:A=zeros(length(x)\/3, 3); % 预设矩阵A的大小 A(:,1) = x(1:3:end-2);A(:,2) = x(2:3:end-1);A(:,3) = x(3:3:end);A就是你要的矩阵。
MATLAB如何提取某一矩阵中某一列的部分数据?
如a(3,2:4)表示a的第3行第2到4列。例子:>> A=[1:6;2:7;3:8;4:9;5:10;6:11]A(1,:)A(:,1)A = 1 2 3 4 5 6 2 3 4 5 6 7 3 4 5 6 7 8 4 5 6 7 8 9 5 6 7 8 9 10 6 7 8 9 10 11 ans = 1 2 3 4 5 6 ans = 1 2 3 4 5 6 ...
如何用matlab将矩阵按列归一化
矩阵按列按行归一化到L2范数的原理和最精简Matlab代 在模式识别和机器学习的数据预处理过程中,对数据集按行或者按列进行L2范数归一化是一种常见的归一化方式,因此本文将介绍对向量进行L2范数归一化的原理和方法,并给出相关的Matlab源代码,供后学者作为基础知识参考使用。由此,我们可以很块的写出最...
matlab中如何任意选取一个矩阵的任意几行几列
1、首先在matlab命令行窗口中输入a=[1 2 3;2 3 4;3 4 5;4 5 6],按回车键,新建一个4行4列的新矩阵。2、通过a(:,1:2)提取矩阵的1,2列,可以根据需要提取某几列。3、通过a(2:4,:)提取矩阵的2,3,4行,可以根据需要提取某几行。4、还可以通过a(:,[1 3])提取矩阵的第1,3列...