双倍或没有?没有开玩笑!
注意日期,伙计们。我今天用这个借口来轻松一下。我在MathWorks有人的门上看到了下面这句话。
Matlab为您提供双倍的好处。
这让我微笑着,我意识到,Matlab使用了一些方法,对用户来说可能并不总是显而易见的。
内容
X是什么类型的?
X = 17
X = 17
当值X显示,17.,没有小数点或其他迹象X不是严格的整数。尽管那样,X是双重精度变量。我至少有几种方法以编程方式找到这些信息。
谁是
名称大小字节类属性x 1x1 8 double
类(x)
ans =双
默认情况下,MATLAB变量是双精度数组。在过去,这些都是只有Matlab中的数组。后台甚至是字符阵列被存储为双值。
其他整数
现在在MATLAB中还有其他存储整数的方法。让我列举一些:
显示存储在不同类型中的值
首先,我将将双倍转换为字符串并显示它。
str17 = num2str(x)
str17 = 17.
注意,显示看起来不同于X。字符数组没有领先的白色空间(除非它是弦本身的一部分)。
现在让我们来看看一些整数类型的显示。
u8 = uint8(X) i8 = int8(X)
(8)表示“在
注意这里你不能区分类型基于值的显示。MATLAB中的默认数字显示器尝试清洁地显示最大信息量。
一些行为
由于默认类型是双倍,因此我们发现它真的很方便允许双标量值和其他数字数组类型之间的一些交互。我喜欢说明行为的方式是,对于算术运算符,Matlab是计算好像阵列一样双打然后尊重非双级存储类的内存节省。例如,这意味着我可以拍摄灰度图像并使如此如此值下降,导致新图像更暗。
p = imread ('pout.tif');类(p)imshow(p)
ans = uint8
phalf = p * 0.5;类(Phalf)imshow(phalf)
ans = uint8
MATLAB类型
您是否有案例在于利用整数和Matlab中的互动,或者整数和浮点整数让您惊喜?让我知道在这里。
注释
要留下评论,请点击在这里登录到您的MathWorks帐户或创建一个新帐户。