Show memory options in Matlab working on Mac platform
古いコメントを表示
Hi all,
I am running Matlab R2012b (64 bit) on a Mac OS (version 10.8.2) computer. I am working with large arrays and like to know the memory usage by Matlab. I have tried 'memory' before on Windows platform and it always worked perfectly ... But when I typed 'memory' in the workspace, it showed the following error
" memory
Error using memory
Function MEMORY is not available on this platform. "
Can anyone help me figure out the problem... When I typed 'help memory' it displayed all information about memory function similar to any help function. Also I can see the function 'memory' in the Matlab documentation which comes along with Matlab... but when I typed 'memory' in the workspace, it showed me an error....
Any help will be greatly appreciated ...
Thanks,
Jeena
採用された回答
その他の回答 (2 件)
Ian
2017 年 6 月 29 日
編集済み: Walter Roberson
2023 年 8 月 31 日
Several cmdline tools for determining physical memory on Macs.
I use:
[status, cmdout]=system('sysctl hw.memsize | awk ''{print $2}''')
google "MacOS sysctl" and "MacOS system_profiler for more info.
2 件のコメント
Mr M.
2018 年 4 月 28 日
編集済み: Walter Roberson
2018 年 4 月 28 日
[status, cmdout]=system('sysctl hw.memsize | awk ''{print $2}''')
-bash: syntax error near unexpected token `('
Walter Roberson
2018 年 4 月 28 日
You need to execute the command inside MATLAB.
Michael Burke
2020 年 1 月 27 日
I created a simple function for this:
function memoryForMac()
% This function will return the memory used by MATLAB on the MAC
%
%% First get the version of MATLAB
curVer = version('-release');
%% get the PID for MATLAB
sysStr = ['ps -o ppid,command |grep ',curVer,'.app'];
[status,verStr] = system(sysStr);
if (status ~= 0)
error('MATLAB was not found: That is odd since you are in MATLAB');
end
%% Get where the string is located
% Format looks like: interested in PPID
% PPID COMMAND
% 4151 /Applications/MATLAB_R2019b.app/bin/maci64/matlab_helper /dev/ttys000 yes
slash = findstr('/',verStr);
pidStr = verStr(1:slash(1)-1);
%% Now get the memory string
sysStr = ['top -pid ',pidStr,' -l 1 -stats MEM'];
[status,info] = system(sysStr);
if (status ~= 0)
error('Invalid PID provided')
else
% now parse out the memory
memLoc = findstr(info,'MEM');
MEM = info(memLoc+5:end-1);
fprintf('Total memory used: %s\n',MEM);
end
2 件のコメント
Rodrigo
2023 年 1 月 17 日
Sir you're doing the Lord's work
Venky Kanniganti
2023 年 1 月 26 日
編集済み: Venky Kanniganti
2023 年 1 月 26 日
I pray that you have spread your progeny far and wide
カテゴリ
ヘルプ センター および File Exchange で Creating and Concatenating Matrices についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!