gpt4 book ai didi

matlab - 如何在不创建变量的情况下确定内存中变量的大小?

转载 作者:太空宇宙 更新时间:2023-11-03 20:20:08 26 4
gpt4 key购买 nike

这可能吗?假设我想确定一个变量 WILL 在我知道维度的情况下占用多少字节,以便在进行计算之前可以采取适当的过程。经典方式:

A = zeros(500, 500, 500);
whos A;

您可能建议在 whos 命令后删除变量,但如果 MATLAB 几乎达到最大内存容量,这可能行不通。有没有一种优雅的方式来做到这一点?

最佳答案

对于标准矩阵 numeric types您只需要知道矩阵中的元素数和数据类型中的字节数。对于您的示例,您的矩阵默认为 double 类型,即 8 个字节,因此您的总矩阵大小为:

matrixSize = [500 500 500];
byteSize = prod(matrixSize)*8;

您可以使用 whos 从该类型的标量变量计算出给定数据类型的字节大小:

temp = uint8(0);           % Sample uint8 variable
varData = whos('temp'); % Get variable data from whos
varBytes = varData.bytes; % Get number of bytes

varBytes =

1 % uint8 takes 1 byte

As mentioned by Sam , 容器类如 cell arraysstructures使计算总字节使用量变得有点复杂,因为它们需要一些内存开销。

关于matlab - 如何在不创建变量的情况下确定内存中变量的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43850676/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com