Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 用160万行(150MB)文件搜索CSV?_Performance_Matlab_File Io_Large Files_Import From Csv - Fatal编程技术网

Performance 用160万行(150MB)文件搜索CSV?

Performance 用160万行(150MB)文件搜索CSV?,performance,matlab,file-io,large-files,import-from-csv,Performance,Matlab,File Io,Large Files,Import From Csv,我有一个CSV,包含160万行数据,大约150MB,包含产品数据。我有另一个包含2000行的CSV,其中包含一个大CSV中的产品列表。它们通过一个唯一的id相互关联。其想法是在CSV中添加2000行的产品数据 databank.csv有标题ID,产品名称,说明,价格。 sm_list.csv具有标题ID 结果是输出一个csv,产品位于sm_list.csv,相应的数据位于databank.csv。。。2000行长 我的原始解决方案读取所有的sm_列表,并逐行读取数据库。它在从数据库读入的行中搜索

我有一个CSV,包含160万行数据,大约150MB,包含产品数据。我有另一个包含2000行的CSV,其中包含一个大CSV中的产品列表。它们通过一个唯一的id相互关联。其想法是在CSV中添加2000行的产品数据

databank.csv有标题
ID
产品名称
说明
价格
sm_list.csv
具有标题
ID

结果是输出一个csv,产品位于
sm_list.csv
,相应的数据位于
databank.csv
。。。2000行长

我的原始解决方案读取所有的
sm_列表
,并逐行读取数据库。它在从数据库读入的行中搜索
sm\u列表
,查找
ID
。这导致了20000x1.6百万=3200百万的比较


你能提供一个基本的算法大纲以最有效的方式完成这项任务吗?

必须使用matlab?如果您只是将所有这些数据输入到一个数据库中,就会更容易。一个简单的
选择tableA.ID,tableB.productname。。。其中tableA.id=tableB.id
就可以了。

假设您知道如何在MATLAB中读取/写入CSV文件(下面的几个问题说明了如何读取/写入CSV文件),下面是一个示例:

%# this would be read from "databank.csv"
prodID = (1:10)';     %'
prodName = cellstr( num2str(prodID, 'Product %02d') );
prodDesc = cellstr( num2str(prodID, 'Description %02d') );
prodPrice = rand(10,1)*100;
databank = [num2cell(prodID) prodName prodDesc num2cell(prodPrice)];

%# same for "sm_list.csv"
sm_list = [2;5;7;10];

%# find matching rows
idx = ismember(prodID,sm_list);
result = databank(idx,:)

%# ... export 'result' to CSV file ...
上述示例的结果如下:

result = 
    [ 2]    'Product 02'    'Description 02'    [19.251]
    [ 5]    'Product 05'    'Description 05'    [14.651]
    [ 7]    'Product 07'    'Description 07'    [4.2652]
    [10]    'Product 10'    'Description 10'    [ 53.86]