# What are the benefits of 64-bit MATLAB versus 32-bit MATLAB?

45 views (last 30 days)
I am trying to decide if upgrading to a 64-bit platform will be practical for my applications. I would like to know how much my system performance will improve, if any, in terms of memory and processing speed.

MathWorks Support Team on 18 Dec 2018
Support for the 64-bit Linux platform was introduced in MATLAB 7.0.1 (R14SP1).
The 64-bit addressing allows for much larger memory. Memory on a 32-bit machine is limited to 2^32 bytes (i.e. 4GB).
On a 64-bit machine this number is increased to 2^64 (i.e. an increase by a factor of 4 billion). Of course, most machines in use today will run out of physical resources (RAM and virtual memory) long before they begin to approach the theoretical 2^64-byte limit.
There is an internal limit of 2^31 elements per array in MATLAB. Up to MATLAB 7.2 (R2006a), this limit applies regardless of the platform. A 2^31 element double array would require 16 GB of space, thus making it impossible to create such an array on a 32-bit machine. A 64-bit machine can theoretically handle many arrays of this size, provided that there is enough RAM and hard disk space to store all the data.
Beginning with MATLAB 7.3 (R2006b), the largest array that can be created can contain 2^48-1 = 2.8147e14 elements.
Also, we do not provide recommendations about any specific brands of computer hardware, but the system needs to meet certain specifications for it to be able to execute MATLAB. Please refer to the following link for more information regarding system requirements for MATLAB:
Note that changing from 32-bit to 64-bit MATLAB only allows for the creation and manipulation of larger variables, but this does not imply a boost in execution speed, and it can sometimes be slower than 32-bit. For additional information that may be helpful for choosing hardware suitable for use with MATLAB, please refer to the following website:
Information about general memory management within MATLAB can be found at the following documentation page:
Walter Roberson on 18 Dec 2018
On a 64-bit machine this number is increased to 2^64
Hypothetically. However, on the x64 architecture and a number of other architectures, the top bit is reserved for indicating supervisor versus user address spaces. Also, on all existing implementations (or at least publicly known) of the x64 architecture, only at most 48 bits of address space are implemented. Thus, one should not expect at present to be able to address more than 2^47 bytes.
At this time the largest unified computer memory that I can find public acknowledgement of is a HP computer with 160 terabytes, which is slightly over 2^47 bytes.

Constantin Wiesener on 17 Jul 2015
Yes I noticed it but if I use the legacy code tool to have a 64 bit input and I am using the fix(64,0) stuff it tells me that only up to 32 bit are allowed. And that is definitly very strange and annoying.
Steven Lord on 17 Jul 2015
This doesn't sound to me like a general 64-bit versus 32-bit question, this sounds like something to do with a specific tool. I recommend you start a new question for this issue and provide more detail in that new question.

mohd akmal masud on 20 Feb 2018
hi all,
i have image dicom 16 bit. my problem is, 16 bit image can stored pixel value till 32767 only. now i want change it to 32 bit or 64 bit so that the pixel value can stored more than that, and corresponding how much activity radionuclides i used to diagnosed patient.
Anyone knows how to convert that using matlab? or anyway to solve it?
mohd akmal masud on 18 Dec 2018
can some one help me to convert pixel value to something represent that pixel value. I dont fully understand to read all the dicominfo for one dicom image

### Products

MathWorks Support

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!