matlab数组排序问题
我想将一个二维数组里的所有数进行降序排序,而且不只是每列排序,是所有的数,按顺序存放在a(1,1),a(1,2),………………应该用什么函数?还有,为什么我读个图片进来是...
我想将一个二维数组里的所有数进行降序排序,而且不只是每列排序,是所有的数,按顺序存放在a(1,1),a(1,2),………………应该用什么函数?还有,为什么我读个图片进来是个三维的数组,想找个二维数组的图片有这么难?求大虾帮忙了
展开
1个回答
展开全部
第一问,举例如下:
>> a=rand(3)
a =
0.9649 0.9572 0.1419
0.1576 0.4854 0.4218
0.9706 0.8003 0.9157
>> b=reshape(sort(a(:)),size(a))' % 用sort(a(:))对a的全部元素排序,然后reshape成为原二维数数组大小,最后转置成为按行排列的数组。
b =
0.0975 0.1270 0.2785
0.5469 0.6324 0.8147
0.9058 0.9134 0.9575
第二问,因为你读的是彩色图像,就是三维的,第三维存储的是三原色信息,如果转换为二维,就只能保留像素坐标的xy值,第三维只用一个数值的话,就会丢失彩色信息,变成灰度值。如果你确定你要这样做,用rgb2gray函数进行转换。
>> a=rand(3)
a =
0.9649 0.9572 0.1419
0.1576 0.4854 0.4218
0.9706 0.8003 0.9157
>> b=reshape(sort(a(:)),size(a))' % 用sort(a(:))对a的全部元素排序,然后reshape成为原二维数数组大小,最后转置成为按行排列的数组。
b =
0.0975 0.1270 0.2785
0.5469 0.6324 0.8147
0.9058 0.9134 0.9575
第二问,因为你读的是彩色图像,就是三维的,第三维存储的是三原色信息,如果转换为二维,就只能保留像素坐标的xy值,第三维只用一个数值的话,就会丢失彩色信息,变成灰度值。如果你确定你要这样做,用rgb2gray函数进行转换。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询