Tag: matlab

在Matlab维护顺序中读取和组合Excel时间序列

我有以下代码读取时间序列数据(包含在Excel工作簿5至19页)。 每个工作表的标题是“TS”,后面跟着时间序列号。 除了一件事以外,这个过程很好,当我研究收益时,我发现所有的时间序列都被移动了5.即TS 6成为“收益”数据中的第11列,TS 19成为第5列,TS 15成为第一列等我需要他们是在相同的顺序,他们阅读 – 这样TS 1是在第一列,TS 2在第二等这是一个问题,因为我读了工作纸的标题(“AssetList”)在整个后续代码中保持其实际顺序。 因此,当我重新组合标题和回报时,我发现它们不匹配。 当例如第4列标题为“TS 4”,但实际上包含TS 18的数据时,这进一步操纵变得复杂。在这个代码中有什么我有错的吗? XL='TimeSeries.xlsx'; formatIn = 'dd/mm/yyyy'; formatOut = 'mmm-dd-yyyy'; Bounds=3; [Bounds,~] = xlsread(XL,Bounds); %确定xls文件中的工作表数量: FirstSheet=5; [~,AssetList] = xlsfinfo(XL); lngth=size(AssetList,2); AssetList(:,1:FirstSheet-1)=[]; %循环显示页数和RETRIEVE VALUES merge_count = 1; for I=FirstSheet:lngth [FundValues, ~, FundSheet] = xlsread(XL,I); %提取date和数据和结合%(去除行1至4中的非预期文本) Fund_dates_data = FundSheet(4:end,1:2); FundDates = cellstr(datestr(datevec(Fund_dates_data(:,1),… formatIn),formatOut)); FundData = cell2mat(Fund_dates_data(:,2)); […]

如何修改MATLAB中的xlswritefig以使用已经存在的文件?

有一个函数写入添加到Excel文件的情节: http : //www.mathworks.com/matlabcentral/fileexchange/24424-xlswritefig但它是旧的,不工作的方式,我需要它。 我如何适应这段代码写入已经存在的文件(正在创build)? 例如,如果我有这个很好的线: xlswrite(filename, percentError, 1, 'C4'); 我想在数据旁边放一个数字,我想写一些东西: xlswritefig(gcf, filename, 'Sheet1', 'E2') 这似乎应该工作,但我得到一个长的错误: 错误使用Interface.000208DB_0000_0000_C000_000000000046 /调用调用错误,调度exception:源:Microsoft Excel描述:'C:\ Users \ User \ Documents \ MATLAB \ C:\ Users \ User \ Dropbox \ MATLAB \ 002 Human Machine \ v6_1 \ results_20131102_222147。 xlsx'找不到。 检查文件名称的拼写,并validation文件位置是否正确。 如果您尝试从最近使用的文件列表中打开该文件,请确保该文件未被重命名,移动或删除。 帮助文件:xlmain11.chm帮助上下文ID:0 xlswritefig错误(第79行)op = invoke(Excel.Workbooks,'open',[pwd filesep filename]); CalcResults_v6_1错误(第226行)xlswritefig(gcf,filename,'Sheet1','E2') 有什么想法吗? 该文件显然存在,因为它是用数据创build和写入的,但是写入xlswritefig的方式(或者我调用它的方式)不会让我给已经存在的文件写一个数字。 […]

如何从Matlab或Excel中填写缺失的数据集

我得到了一个数据集(每日和每月的降雨量数据),但缺less这么多的价值。 为了训练我需要的数据来填补遗漏的数据,你能告诉我怎么做? 我用SPSS统计,但似乎价值不佳,也许我做了错误的方法。 sample: Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 3 3 5 5 6 7 8 7 8 9 NaN 4 NaN 3 NaN 5 NaN 3 4 NaN 4 6 7 8 7 NaN 4 7 8 9 4 2 NaN 4 6 5 …………………………………………….. 另一个问题是,大多数训练前的数据应该是归一化的数据,这是正确的吗? 谢谢你的回答! […]

在使用MATLAB的多个Excel文件中的平均数据

我有如下所示的多个Excel文件(小时数据)。 我想获得日常的平均值(例如从第二天的17:00到16:00)。我只知道一点Matlab。 目前我的解决scheme是在下面,但有一些问题。 读取每个excel文件并将数据存储在一个variables中。 合并所有的数据在一个单一的variables。 在17:00查找行号(n)。 为此,我获得了每行的date,然后search(查找)对应于17:00的date。 平均每两行之间的数据(n(i))。 如果原始数据是正确的,它工作正常。 但是问题在下面。 17:00的一些数据丢失。 所以当它试图在17:00查找行时会出错。 当我有超过100个Excel文件,它运行非常缓慢。 有谁能提出一些build议如何解决这个问题? 我更喜欢使用Matlab,因为它是我所知道的唯一一个工具。 非常感谢! 编辑1 :提供的代码 以下是获取日常平均的代码。 我已经将文件“summary_file.xls”中的所有数据(该部分的代码未显示。 如下所示的示例表。 9月1日17:00至9月2日之间的平均时间没有问题。 对于缺less数据的日子,我想在17:00之前获得所有可用数据的平均值。 例如:由于9月3日17:00的数据缺失,无法获得9月2 – 3日的平均值。 对于这种情况,我想在17:00之前获得所有数据的平均值(即9月3日9:00) 那么9月3 – 4日,我想从18:00开始计算平均值。 对于所有数据缺失的日子,只需将所有数据设为0或标记为不可用。 [num,txt,raw] = xlsread('summary_file.xls'); %读取文件 date_num = num(:,11); % read the column containing date number starting = '2003/09/05-17:00'; % starting time starting = datenum(starting,formatIn_2); % […]

从Matlab转换数据到Excel

在matlab中,我的一个variables产生如下的一个数字:t = 1.0e-07 * 第1列到第4列 0.000002188044002 0.000011853757224 0.000043123777130 0.000134856642090 第5至8列 0.000414700915105 0.001479279377534 0.003134050793671 0.008617995925603 第9至12列 0.065830078792745 0.087987267599604 0.106338163623915 0.121617374878836 第13至16列 0.134520178924611 0.145518794399287 0.155035638788571 0.163042823513867 第17至18列 0.170181805020581 0.172442168463983 如何在一列中生成它们以便轻松地复制和粘贴到Excel?

提取excel行并获取另一列中的相应单词

我准备了一张有两列的excel表格。 英文单词第一列存储,第二列存储相应的马拉地语单词。 我想先在excel文件中search英文单词,如果单词可用,则获取其相应的马拉地语单词。 在matlab中的代码…

在MATLAB中使用XLSWRITE从第2行插入matrix的值

我正在使用XLSWRITE将matrix的值导出到Excel文件。 假设我有一个5 * 20的matrix。 我想要Matlab从第2行写这个matrix(因为我有一个Excel模板,我不想在覆盖中改变它的第一行)。 我该怎么办?

MATLAB – 生成函数时只读取第一列variables

这可能是一个基本的问题。 我是初学者。 当我试图导入一个excel文件与5列和第1行列标题,并生成一个相同的function,MATLAB没有生成5个variables按列标题,但只有一个variables,这也与默认名字,答案。 请帮助。 这里是代码: function [Date,Open,High,Low,Close] = importfile(workbookFile,sheetName,startRow,endRow) % If no sheet is specified, read first sheet if nargin == 1 || isempty(sheetName) sheetName = 1; end % If row start and end points are not specified, define defaults if nargin <= 3 startRow = 2; endRow = 250; end %% Import the data, […]

VBA Excel制作序列号数组

我目前在Excel的VBA工作,但我真的只精通Matlab。 对于我的工作来说,留在vba(而不是excel的工作表中)的记忆是非常重要的。 我需要做的是做一个顺序整数数组,例如4000到5000.在matlab中,这真的很容易,我只是做… i = 4000:5000,或i = 4000:1:5000。 在第二种情况下,1是我的“步骤”。 我想知道什么是最好的方式来实现这个结果的VBA? 谢谢

有没有办法将MATLAB对象写入内存?

现在,我正在浏览一个大型的excel数据库(超过16,000)条目,并将条目转换为我创build的类的对象。 因为通过数据库并创build所有对象需要很长时间,所以我想知道是否有办法将这些对象保存到内存中,这样每次运行程序时都不需要将数据库重新转换为对象,我可以只需运行一次转换脚本,然后加载对象。 谢谢!