相关疑难解决方法(0)

如何在MATLAB/Octave中获得实数整数溢出?

我正在为MATLAB/Octave中的一些VHDL代码开发一个验证工具.因此,我需要生成"真正"溢出的数据类型:

intmax('int32') + 1
ans = -2147483648
Run Code Online (Sandbox Code Playgroud)

稍后,如果我可以定义变量的位宽,那将会很有帮助,但现在这不是那么重要.

当我构建一个类似C的例子时,变量增加直到它小于零,它会永远旋转:

test = int32(2^30);
while (test > 0)
    test = test + int32(1);
end
Run Code Online (Sandbox Code Playgroud)

我尝试的另一种方法是自定义"溢出" - 例程,每次更改数字后都会调用它.这种方法非常缓慢,不实用,根本不适用于所有情况.有什么建议?

matlab overflow integer-overflow

14
推荐指数
2
解决办法
7912
查看次数

禁用Matlab R2016b隐式扩展

Matlab R2016b带有一个怪物会杀死我们所有人:操作员隐式扩展.

基本上如果你有一个矩阵A和一个向量B,你现在可以做A + B(没有bsxfunrepmat).听起来不错吧?

但是,如果您提供列向量和行向量,它也可以工作!!

例:

a = 1:4      % row vector
b = (1:4)'   % column vector

% before R2016b:    
a + b
   Matrix dimensions must agree.

% after R2016b:
a + b 
    ans =

    2     3     4     5
    3     4     5     6
    4     5     6     7
    5     6     7     8
Run Code Online (Sandbox Code Playgroud)

扩展两个向量并给出一个矩阵作为结果!! 这非常糟糕,因为您可能在没有注意到的情况下进行了完全不需要的操作.

所以我的问题是:是否有一种方法可以禁用隐式扩展并回复Matrix dimensions must agree错误?

matlab vector matrix expansion

7
推荐指数
0
解决办法
414
查看次数

标签 统计

matlab ×2

expansion ×1

integer-overflow ×1

matrix ×1

overflow ×1

vector ×1