我有以下代码读取时间序列数据(包含在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)); […]
有一个函数写入添加到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的方式(或者我调用它的方式)不会让我给已经存在的文件写一个数字。 […]
我得到了一个数据集(每日和每月的降雨量数据),但缺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 …………………………………………….. 另一个问题是,大多数训练前的数据应该是归一化的数据,这是正确的吗? 谢谢你的回答! […]
我有如下所示的多个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中,我的一个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文件中search英文单词,如果单词可用,则获取其相应的马拉地语单词。 在matlab中的代码…
我正在使用XLSWRITE将matrix的值导出到Excel文件。 假设我有一个5 * 20的matrix。 我想要Matlab从第2行写这个matrix(因为我有一个Excel模板,我不想在覆盖中改变它的第一行)。 我该怎么办?
这可能是一个基本的问题。 我是初学者。 当我试图导入一个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, […]
我目前在Excel的VBA工作,但我真的只精通Matlab。 对于我的工作来说,留在vba(而不是excel的工作表中)的记忆是非常重要的。 我需要做的是做一个顺序整数数组,例如4000到5000.在matlab中,这真的很容易,我只是做… i = 4000:5000,或i = 4000:1:5000。 在第二种情况下,1是我的“步骤”。 我想知道什么是最好的方式来实现这个结果的VBA? 谢谢
现在,我正在浏览一个大型的excel数据库(超过16,000)条目,并将条目转换为我创build的类的对象。 因为通过数据库并创build所有对象需要很长时间,所以我想知道是否有办法将这些对象保存到内存中,这样每次运行程序时都不需要将数据库重新转换为对象,我可以只需运行一次转换脚本,然后加载对象。 谢谢!