Tag: matlab

如何在批处理模式下运行matlab时增加java堆内存大小

我在我所的一个集中式集群(linux)上运行了一个使用12个处理器的并行matlab代码。 代码运行良好,但无法打印Excel文件。 我正在使用xlwrite函数并在工作目录中具有所有相关的文件夹和文件。 我得到的错误是 “使用org.apache.poi.xssf.usermodel.XSSFCell / setCellValue发生错误发生Javaexception:java.lang.OutOfMemoryError:超出GC开销限制 我怎样才能改变堆内存? 生成的每个excel文件(预期的)有45000行和6列,包含整数以及浮点数据。 (我在整个代码中使用xlwrite函数四次)代码中使用的input数据variables大小为22MB。 在一台有32GB内存的Windows机器上运行完全相同的代码。 但是我失去了访问权限,因此需要知道如何在Linux机器上运行它。 在服务器上提交作业的cmd文件是: #!/bin/bash #@ output = test.out #@ error = test.err #@ job_type = MPICH #@ node = 1 #@ tasks_per_node = 16 #@ class = Medium128 #@ environment = COPY_ALL #@ queue Jobid=`echo $LOADL_STEP_ID | cut -f 6 -d .` tmpdir=$HOME/scratch/job$Jobid mkdir -p […]

Matlab:存储大量数据

我的csv文件看起来像这样 'have', 1436271616097.0, 33.0, 'noChange', 1436271538982.0 'four', 1436271616130.0, 466.0, 'noChange', 1436271538982.0 'have', 1436271616596.0, 467.0, 'noChange', 1436271538982.0 'four', 1436271617063.0, 100.0, 'noChange', 1436271538982.0 我试着用[num, txt, raw] = csvread('test.csv')它显示错误,说太多的输出参数。 我试图将我的CSV文件转换为.xlsx,但随后它将数字更改为此, have 1.44E+12 33 noChange 1.44E+12 four 1.44E+12 466 noChange 1.44E+12 have 1.44E+12 467 noChange 1.44E+12 four 1.44E+12 100 noChange 1.44E+12 minutes 1.44E+12 666 noChange 1.44E+12 然后我用[num, txt, raw] […]

如何在Matlab中findexcel中的最后一列索引

我正在使用Matlab将数据作为matrix写入excel文件。 我的matrix的维度各不相同,我不知道matrix的维度。 假设我有不同维度的matrixA,B和C. 我想要做的是首先写入matrixA到Excel中,然后在A之后写入matrixB,其间有1列间隔。 我不知道是否有一种方法可以findExcel中的最后一个列索引,并创build这两个matrix之间的差距。 我的代码现在是这样的: xlswrite('My file.xls',A,'My Sheet','B2'); %% Here is what I don't know to fill in to find the starting range index for my next matrix. %% xlswrite('My file.xls',B,'My Sheet','newindex');

如何用string和数字值删除整个行

我需要使用matlab编程删除excel文件中的空列的所有行。 我有多个Excel文件,数据格式如下: admin img1 1 admin img2 1 admin img3 1 admin img4 1 我需要删除所有这些文件中不包含任何数据的所有空白行。 我发现了一个很好的代码片段,它满足了我的要求,但它只是删除数字数据。 Q:\下面的代码删除所有只包含数字数据的行,如果删除行包含string数据,那么我们需要做哪些types的修改?如果我有很多的excel文件,还有一件事呢? e = actxserver ('Excel.Application'); %// open Activex server ewb = e.Workbooks.Open('c:\test\test.xlsx'); %// open file (enter full path) eur = ewb.ActiveSheet.UsedRange; %// lets simplify using active sheet data = cell2mat(eur.Value); %// get numeric data idx = find(any(isnan(data),2))'; %'// find […]

合并行与连接date

我有一个包含客户和订阅数据的大型Excel表格。 从这张表我想合并logging/行与连接stop_和start_dates,并在新的工作表中显示结果。 数据的简化版本如下所示。 Customer_id subscription_id start_date stop_date 1034 RV4 30-4-2012 30-1-2015 1035 AB7 30-1-2014 30-3-2014 1035 AB6 30-1-2014 30-3-2014 1035 AB7 30-12-2013 30-1-2014 1035 AB7 12-12-2012 30-12-2013 1035 AB7 12-9-2010 14-1-2011 所以,公式必须检查customer_id和subscription_id。 当工作表中的两行或多行匹配,其中一行的stop_date与另一行的start_date重叠时,则在提取和合并之后,必须显示一行,其中第一行的start_date和另一行的stop_date。 如果有多行连接date,这也必须工作。 所有不符合这些标准的行在提取后保持不变。 所以结果会是这样的: Customer_id subscription_id start_date stop_date 1034 RV4 30-4-2012 30-1-2015 1035 AB6 30-1-2014 30-3-2014 1035 AB7 12-12-2012 30-3-2014 1035 AB7 12-9-2010 […]

MATLAB 2015b破解ActiveX / Excel控件

涉及使用MATLAB 2015b创buildActiveX句柄的问题。 在更新之前(从2013a开始),我使用下面的“try catch”来创build一个新的Excel应用程序句柄: global Excel try Excel = actxGetRunningServer('Excel.Application') ; catch Excel = actxserver('Excel.Application'); end 自从更新到2015b之后,代码仍然无误地运行,但是现在创build的Excel句柄仍然是Excel_Applicationtypes,没有任何属性。 调用Excel.get返回一个没有字段的结构。 除了更新之外,还没有对代码进行任何其他更改,MS Office的版本也没有更改。 MATLAB处理ActiveX接口的方式有没有改变,或者我的代码有什么问题?

如何用Matlab COM服务器读取所有excel数据

我需要读取非常大的Excel数据,我想计算它。 我的数据有这么多的工作表,每个工作表都有很多列,列数不是特定的(例如:工作表1有150列,但工作表2有3000列),但是行数是已知的。 get(Excel.Activesheet.UsedRange) 此代码不起作用,因为它只select了256列。 所以,我需要知道不同工作表的列数。 你可以帮我吗?

从csv文件读取数据到MATLAB时出错

我有以下示例数据 Date,Open,High,Low,Close,Volume,Adj Close 10/24/2011,181.51,183.39,180.62,182.25,5890600,182.25 10/21/2011,179.11,181.67,178.75,181.63,8054200,181.63 10/20/2011,178.13,179.24,176.17,177.25,7513800,177.25 我正在从CSV文件读取数据到MATLAB。 data = csvread('filename.csv','A1:G12542'); 我得到以下错误。 任何想法如何绕过这个问题? ??? Error using ==> dlmread at 145 Header lines must be integer-valued. Error in ==> csvread at 50 m=dlmread(filename, ',', r, c); Error in ==> Q11 at 1 data1 = csvread('ibm.csv','A1:G12542');

Xlsx或csv在Matlab中回顾

我有.xlsx点数据,我想在Matlab中读取并存储在p数组中。 这些点只是x , y , z 三维坐标 ,从而理解了三列而不是三列。 如果我需要快速检索,我如何能从.xlsx或.csv ,因为我试图检索.xlsx ,其响应时间很慢,并返回一个空数组。 可能将它们以转置的forms存储并转换回来。 我的代码:.Xls阅读 A = xlsread('data.xlsx') 输出: A = [] 我的代码:.CSV阅读 M = csvread('data.csv') 输出: Error using dlmread (line 139) Mismatch between file and format string. Trouble reading number from file (row 2u, field 1u) ==> ;\n Error in csvread (line 48) m=dlmread(filename, ',', r, […]

如何防止matlab自动分隔一个string与逗号不同的单元格在CSV?

我有一个巨大的单元格数组,名为A ,充满了这样的string: 'Watson JD, Crick FH, (April 1953)., Molecular Structure of nucleic acids' 'Watson JD, Crick FH, (April 1953)., Molecular Structure of nucleic acids' 'Special_Relativity_By_Einstein' 'Special_Relativity_By_Einstein' 'Edgar, RS, Feynman, Richard P., Klein, S., Lielausis, I., Steinberg, CM (1962) Mapping Experiments…' 我想将这个单元格数组自动写入一个xls或csv文件中。 问题是,当我想写入一个csv文件使用的技术,如 fid = fopen('NamesOfPapers.csv','w'); for i=1:length(A) fprintf(fid,'%s\n', A{i}); end fclose(fid); 例如,我得到这一行的多个列: Watson JD, Crick […]