Tag: matlab

从双转换到单元是不可能的 – MATLAB

有没有办法将文本文件读取到string的单元格数组,并将其写入Excel文件? 我尝试这样的事情: for d = 1:n dFile(d,1) = d content = strcat(dirpathstr{d}) filecontent =textscan(content, '%s', 'whitespace', '') dFile(d,2) = filecontent end 但它给我错误“从双转换到单元格是不可能的”,然后我改进它 "dFile(d,2) = str2double (filecontent)" 但是结果给了我'NaN' 谁能帮我 :)

在MATLAB中将不同的单元arrays组合成一个

我正在尝试查找数组中的特定字符,并以相同的顺序将输出打印到Excel表格中(即,如果元素之间没有匹配则保留空白)。 我在循环中使用了下面的代码: 编辑: [num,txt,~] = xlsread('protein-peptides.xls') for i=1:size(txt) str(i)=txt(i) expression='\w*Pyro-glu from E\w*'; matchStr(i)=regexp(str(i),expression,'match','once'); ArrayOfStrings=vertcat(matchStr{:}); end 循环之后: xlswrite(filename,ArrayOfStrings,1); 输出如下。 1)没有匹配的元素不显示为空白 2)匹配的每个单词显示在不同的单元格中。 P yro – glufrom E P yro – glufrom E P yro – glufrom E P yro – glufrom E 如何获得matrix中剩余的空格,并在输出中的单个单元格中包含整个匹配短语? 我尝试连接单元格,但是打印所有的输出在一行,但仍然在不同的单元格中的每个字符

用于将string写入excel的Matlab命令

我正在尝试使用Matlab通过以下命令在excel文件的单元格中编写一个string: xlswrite('E:\ project \ messidor \ Testing image.xls','hello',1,'A3'); 但问题是单词hello写在不同的单元格中的每个字符。 在这个例子中,我希望单词hello写在单元格A3中,但是h写在A3中,e写入“B3”,l写入“C3”,依此类推。 请build议正确的命令。

从excel文件中读取datenum而不是datestr

我想从excel表中读取testing表,我的excel表看起来像这样 Building location start_date start_time end_date end_time number Test_Building 1.08 12.06.2016 19:00 12.06.2016 19:30 7 现在,当我读取这个在matlab中的表,通过使用: R = readtable('testtable.xlsx','ReadVariableNames',1) 我有类似的东西 R = Building location start_date start_time end_date end_time number _______________ ________ ____________ ____________ ____________ ________ ______ 'Test_Building' 1.08 '12.06.2016' 0.79167 '12.06.2016' 0.8125 7 现在,如果你注意到start_time和end_time是以datenum格式而不是end_time来检索的,我怎么能保存这个时间,以便当我检索到这些variables时,它们是以datestr格式?

用于MATLAB中列数据处理的嵌套循环

我有大小(4097,100)100列xlsx文件。 我需要读取第一列并进行一些处理,并且这仅导致第一列数据的四个行variables(每个为1,4097)。 此外,我需要处理这四个行variables中的每一个,以获得其统计参数,如MATLAB中的最小值,最大值,平均值,标清,variables。 如何做到嵌套for循环? 我感谢您的帮助。 我正在尝试的示例MATLAB代码是我已经考虑只有两列A1和A2: A = xlsread('S.xlsx'); num_rows = size(A,1); num_cols = size(A,2); A1 = A (:,1); A2 = A (:,2); B = {A1,A2}; for i = 1:2 for j = 1:4 IMF = emd(B{i},'STOP',[0.1,0.5,0.05],'MAXITERATIONS',100); I1 = IMF (1,:); I2 = IMF (2,:); I3 = IMF (3,:); I4 = IMF (4,:); imf = […]

在Matlab中迭代逗号分隔的列表会给出错误:“FORexpression式逗号分隔的列表必须只有一个项目”。

我试图通过摆脱一些文本中的不必要的垃圾来清理一些文本数据。 该文本当前存在于Excel数据集中,全部在一列中,每个“项目”文本占据一行。 这些项目都是string,每个字符都有几个到几个字。 我使用下面的代码(第二块)提取项目,它给了我list1,这是一个14510×1单元格。 我想在Matlab中运行这个for循环: function list2 = cleanup(exp_spec,list1) for i = list1{(1:length(list1))}; str = i; replace = ''; list2{i} = regexprep(str,exp_spec,replace); end end 我从Excel表中得到了“list1”,如下所示: [~,txt,~] = xlsread('spreadsheet.xlsx','T:T'); list1 = txt; 当我尝试用这一行运行代码时, list2 = cleanup('&#[0-9]+;',list1); clean_list = list2; 它会抛出错误: FOR expression comma separated list must have exactly one item. Error in cleanup (line 2) for […]

为什么从Excel中删除格式会增加MATLAB可读取的速度?

我有一个有大约400行和10列数据的电子表格。 我有它build立在MATLAB导入此表使用可读表(因为数据不是本土的,我发现这是最简单的方法,通过xlsread)。 问题是,Excel文件中的格式导致readtablefunction超慢。 数字格式(小数位)和条件格式都会影响到这一点。 % With formatting: 35 seconds % Without formatting: 1 second 我希望能够保持Excel文件格式为可视化的目的,但它似乎是造成问题。 任何方式来解决这个问题,而不必摆脱格式?

Matlab的EPPlus:创build图表时,eShapeStyle丢失

将数据从Matlab 2015b写入Excel文件我正在使用.NET EPPlus库(v4.1, http: //epplus.codeplex.com/)。 读取和写入数据的所有作品。 格式也是如此。 但是,在创build图表时,我遇到了一个我无法解决的错误消息。 让ws_chart成为表单对象,然后调用 ws_chart.Drawings.AddChart('Chart1', OfficeOpenXml.Drawing.Chart.eChartType.ColumnStacked); 出现以下错误消息 Message: The namespace for the type 'eShapeStyle' does not exist. MATLAB requires all .NET types to be within a namespace. Source: dotnet/cli HelpLink: 我发现eShapeStyle在EPPlus/Drawing/ExcelShape.cs被定义为enum ,但使用各种导入不起作用。 我现在正在使用 import System.Drawing.* import OfficeOpenXml.Drawing.* import OfficeOpenXml.Style.* 我也没有在Matlab中看到一个命名空间OfficeOpenXml.Drawing.ExcelShape 。 谁能帮我这个? PS:我知道我也可以使用ActiveX接口,但是我发现它很慢,并且不允许我在Matlab通过这个协议写入时使用Excel。

数据存储和从Matlab导出

这里是我遇到的问题的背景信息: 1)输出是一个单元格数组,每个单元格包含一个大小= 1024 x 1024的matrix,type = double 2)labelbout是一个与输出相同的单元arrays,只是每个matrix都被二进制化了。 3)我正在使用函数regionprops为每个输出单元提取ROI的平均强度和质心值(每个图像中有多个ROI) 4)道具是一个5×1结构与2个领域(质心和平均强度) 问题:我想在每个matrix中获取每个ROI的平均强度值并导出为ex​​cel。 这是我到目前为止: for i = 1:size(output,2) props = regionprops(labelboutput{1,i},output{1,i},'MeanIntensity','Centroid'); end for i = 1:size(output,2) meanValues = getfield(props(1:length(props),'MeanIntensity')); end writetable(struct2table(props), 'advanced_test.xlsx'); 似乎有几个问题: 1)我的getfield命令不工作,并得到错误:“索引超过matrix尺寸” 2)当信息被存储到道具中时,它覆盖每个matrix的值。 我如何制作道具5 xn(其中n =输出单元格的数量)? 请帮忙!!

使用ActiveX从Excel导入到Matlab

我需要优化将.xls文件导入到matlab中,因为xlsread耗费大量文件非常耗时。 当前的xlsread脚本如下: scriptName = mfilename('fullpath'); [currentpath, filename, fileextension]= fileparts(scriptName); xlsnames = dir(fullfile(currentpath,'*.xls')); xlscount = length(xlsnames); xlsimportdata = zeros(7,6,xlscount); for k = 1:xlscount xlsimport = xlsread(xlsnames(k).name,'D31:I37'); xlsimportdata(:,1:size(xlsimport,2),k) = xlsimport; end 我有接近10K文件每周需要处理和约。 每个文件在我现在的工作站上处理2秒,大约需要5个半小时。 我已经读过ActiveX可以用于这个目的,但是这远远超出了我目前的编程技能,并且还没有能够在其他地方find解决scheme。 任何帮助如何做到这一点,将不胜感激。 如果使用ActiveX(或其他build议的方法)执行起来很简单,我也会对单元格D5和G3的数据感兴趣,我现在正在从“xlsnames(k,1).name”和“xlsnames(k, 1).date” 编辑:更新以反映解决scheme % Get path to .m script scriptName = mfilename('fullpath'); [currentpath, filename, fileextension]= fileparts(scriptName); % Generate list of .xls file […]