Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MATLAB中编写一个双矩阵_Matlab_Matrix - Fatal编程技术网

在MATLAB中编写一个双矩阵

在MATLAB中编写一个双矩阵,matlab,matrix,Matlab,Matrix,我如何才能imwrite此值[12 13.5;15 107.75]而不在imread中更改 我想保存我的信息。但是,如果当我读取这个矩阵时,我uint8这个值,我有这个[12 13;15 108]这不能由imwrite完成。你可以尝试函数fprintf。 (让[12 13.5;15 107.75]成为A) 从imwrite文档: imwrite(A,文件名)将图像数据A写入文件名指定的文件。 如果数据类型为uint16,且输出文件格式支持16位数据(JPEG、PNG和TIFF),则imwrite

我如何才能
imwrite
此值
[12 13.5;15 107.75]
而不在
imread
中更改


我想保存我的信息。但是,如果当我读取这个矩阵时,我
uint8
这个值,我有这个
[12 13;15 108]
这不能由imwrite完成。你可以尝试函数fprintf。 (让
[12 13.5;15 107.75]
成为
A

imwrite
文档:

imwrite(A,文件名)将图像数据A写入文件名指定的文件。 如果数据类型为uint16,且输出文件格式支持16位数据(JPEG、PNG和TIFF),则imwrite输出16位值

因此,您可以将
A
乘以
100
,然后将其转换为
uint16
。您将获得
[1200 1350;1500 10775]
。将其写入
(JPEG、PNG或TIFF)
例如
imwrite(a,'image.JPEG')

现在
imread('image.jpeg')
将返回
16位
整数。将它们转换为double,然后除以
100
得到原始数据。(例如,
out=double(imread('image.jpeg'))/100

注意:16位中可表示的最高值为
65536
。因此,这意味着放大后输入的数字必须小于
65536
,否则将丢失信息。如果使用小于255的双精度
(小数点后两位),则放大后的最大值将是
25599
,该值小于
65536
,因此可以。如果输入值的范围或精度不同,请小心


尽管如此,我认为您应该按照T.Huang的建议,使用
fprintf
将数据写入一个文件。

@shiva如果这对您有帮助,请选择此答案作为接受答案(单击答案分数计数器下方的勾号)。它将帮助其他来这里的人。