matlab中如何将一维数组转换成图像

例如说S=[22,32,46,…,]是个一维数组,我想把它转换成8位的位图(bmp),长为L高为H,该如何写命令呢?

第1个回答  推荐于2017-12-15
NewS = [S(1:L);S(L+1:L*2);S(L*2+1:L*3);.....S(L*H-L+1:L*H)];

这是个笨办法,重新组合成多维数组。

Matlab本来有个专用命令可以做这个工作,但不用MatlaB太久了,真是想不起来了。本回答被提问者采纳
第2个回答  2020-06-02
如果数组S是double类型,需要先转化为三通道,然后转换为uint8类型,最后imshow就可以了。
a=reshape[S,L,H,3];(如果你是转为RGB三通道图)
b=uint8(a);
imshow(b)
第3个回答  推荐于2018-03-14
reshape(S,L,H)%这个需要S的个数能被L*H整除,不然报错.
imshow(S); %显示该图片本回答被网友采纳
第4个回答  2016-01-09
直接输入法
1
在Matlab的命令窗口中,直接输入数据,使用【分号;】或者【空格 】创建一维数组。例如输入:
data1=[pi;log(5);7+6;2^3]
得到:
data1=[pi;log(5);7+6;2^3]
输入:
data2=[pi log(5) 7+6 2^3]
得到:
data2 =
3.1416 1.6094 13.0000 8.0000

步长生成法
1
步长生成法的通用格式为【a:inc:b】其中a表示数组的第一个元素,inc表示数组之间的间隔,b表示数组对方最后一个元素。注:inc可以省略,默认的数值是1。
例如输入:
data3=2:2:10
得到:
data3 =
2 4 6 8 10
输入:
data4=2:10
得到:
data4 =
2 3 4 5 6 7 8 9 10