在Matlab中拆分大型二进制文件

时间:2015-05-05 10:38:36

标签: matlab

我有一个非常大的二进制文件,其中包含大约一GB数据量的信息。

我正在尝试将1 GB的.bin文件拆分为4个256 MB的文件,我没有任何帮助。

我尝试使用textscanmemmapfile函数,但没有用。

对此有何帮助?

1 个答案:

答案 0 :(得分:1)

MATLAB可以读写二进制文件。

尝试使用fread()fwrite() / fclose().bin命令。

要将二进制文件读入MATLAB,首先打开该文件以供阅读。

然后魔术来了 - 您需要知道fHANDLE = fopen( 'aHugeBinFileNAME.bin','r'); % Open the binary file for reading with a fileHandle fHANDLE [dVECTOR,count] = fread( fHANDLE, 'int16' ); % Scan the data into a vector of int16 values, in this case called dVECTOR fclose( fHANDLE); % Close the file 文件中二进制数据的上下文/结构,以便能够使用正确的格式将数据扫描到变量

help fread()

无论如何,通过dVECTOR_256M = fread( fHANDLE, 256*1024*1024, 'uint8', 0, 'b' ); % Big-Endian convention 等获取有关fileIO服务的更多详细信息,以获取更多选项,以便为您的特定使用环境读取“第一个/下一个”256MB的巨大输入文件。

<?php
# Error Printing
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);

require_once('FacebookAPI/Facebook.php');
$facebook = new Facebook(array(
'appId'  => 'xxxxxxxxxxxxxx',
'secret' => 'yyyyyyyyyyyyyy',
));

# Get User ID
$user = $facebook->getUser();
$fql  = "SELECT like_info.like_count, comment_info.comment_count, share_count, post_id
         FROM stream 
         WHERE source_id = 'PAGE_ID'";
$param  =   array(
                  'method'    => 'fql.query',
                  'query'     => $fql,
                  'callback'  => ''
                  );
$fqlResult   =   $facebook->api($param);
$asset_count = 0;
foreach($fqlResult as $row){
    $asset_count += (int)$row['like_info.like_count'] + (int)$row['comment_info.comment_count']+ (int)$row['share_count']+ (int)$row['post_id'];               
}
echo "<br/><br/>";
echo $asset_count;
?>