4

我是 matlab 的新手,我正在尝试解决以下情况。

我有大字符串需要进行异或编码才能获得值。我正在使用以下代码片段来执行操作:

 clear;clc;
 first ='abceeeeeeeeeeeeeeeddddddddddddd';
 second='defrrrrrrrrrrrrttttttttttttuuuu';
 result=bitxor(uint8(double(first)) , uint8(double(second)));

在上面的代码中,我对字符串的值进行了硬编码。我想知道matlab是否定义了字符串的大小限制?如果有人可以帮助我以字节为单位更多地理解这个值,那将非常有帮助。

谢谢和问候, Bhavya

4

1 回答 1

4

我不认为变量附加了大小限制,但是在可用内存方面肯定存在限制,这取决于您的操作系统和计算机体系结构。

例如,我在 32 位 Windows 7 上运行 Matlab R2008b。命令的输出memory给了我:

Maximum possible array:            1128 MB (1.183e+009 bytes) *
Memory available for all arrays:   1470 MB (1.542e+009 bytes) **
Memory used by MATLAB:              294 MB (3.085e+008 bytes)
Physical Memory (RAM):             3519 MB (3.690e+009 bytes)
*  Limited by contiguous virtual address space available.
** Limited by virtual address space available.

在引发“内存不足”错误之前,我可以创建一个包含 5e8 个元素的字符数组,即 1e9 个字节,这与memory输出一致。

您可以在 MathWorks 网站上查看与内存管理相关的技术说明:

于 2012-01-17T10:53:08.817 回答