Tag: matlab

用MATLAB添加新列到Excel中

我想问如何使用MATLAB来追加新的列到现有的Excel文件,而不改变文件中的原始数据? 在我的情况下,我不知道文件中的原始列数和行数,并且逐个打开文件并在实践中检查是低效的。 另一个困难是新列可能与现有数据有不同的行数,所以我不能用数据读取的技巧,形成一个新的matrix,用新的matrix代替数据。 我已经看到很多post教人们如何添加新的行,但添加新的列似乎是完全不同的东西,因为列是用字母而不是数字命名的。 谢谢。

输出时间使用xlswrite

我试图创build一个时间戳(date或date和时间)使用 t=now; 要么 t=date; 当它使用xlswrite输出时,date或时间和date遍布六个单元格。 我试过转换成数组和向量,它有相同的输出。 谢谢

MATLAB:如何将数据值导出到excel文件

pic1 = double (Pic1); pic2 = double(Pic2); pic3 = double(Pic3); pic4 = double(Pic4); ILB = 1; B = pic1./ILB; ILC = 0.2; VC(1:1024,1:1024)= 0.581695; VT = 0.025; C = (pic2 – B*ILC)./(exp(VC./VT)) IL = 1; V1 = VT*log((pic3 – B*IL)./(C)); V2 = VT*log((pic4 – B*IL)./(C)); Vapp1(1:1024,1:1024)=0.616185; Vapp2(1:1024,1:1024)=0.575044; jp = input('Please enter the jp value ranging […]

将单元格结构中的数字数据转换为时间戳(HH:MM:SS)MATLAB

我已经将一个Excel电子表格导入MATLAB,其中包含一列我想要提取的时间戳。 但是,由于Excel将时间戳存储为数字数据,因此导入的单元格现在处于非string格式,例如0.4479,0.4480等。有没有将所有单元格转换为HH:MM:SS格式的快速方法?

将多个.DAT文件转换为具有不同工作表的一个xlsx工作簿

我有一个包含50个DAT文件的目录,每个文件包含一个基本的xlsx文件。 我需要使用这50个DAT文件作为一个独立的工作表在目录中的每个文件夹中制作一个工作簿。 工作表应使用Tab键分隔的DAT文件中的3,4,5列。 工作表应该有6列。 前三个将取自目录中的基本xlsx文件。 。列4-6应具有来自.DAT文件的列3-5中的值。 我在MATLAB中编写了一个代码来做必要的事情。 每次我运行它,程序崩溃。 我收到的错误是 错误使用xlswrite(第219行)调用错误,调度exception:源:Microsoft Excel说明:文档未保存。 帮助文件:xlmain11.chm帮助上下文ID:0。 代码如下:在代码中,files_larswg是基本的xlsx文件。 有没有一个程序纠正错误,并使过程成批处理,以防万一我有10个类似的目录。 date=xlsread('files_larswg.xlsx',1,'A2:C18251'); header_tree={ 'da' , 'mo', 'year', 'tminC', 'tmaxC','prcpmm'}; for k=1:50 k fileID =fopen(sprintf('FortWayneWG%d.dat',k+516)); data = textscan(fileID,'%*d %*d %f %f %f'); fclose(fileID); data=cell2mat(data); sheet_no=sprintf('sheet%d',k); xlswrite('FWYLARSWG_50set.xlsx', data, sheet_no,'D2:F18251'); xlswrite('FWYLARSWG_50set.xlsx', header_tree, sheet_no,'A1:F1'); xlswrite('FWYLARSWG_50set.xlsx', date, sheet_no,'A2:C18251'); 结束

通过Matlab合并excels文件

我在一个文件夹中有许多excel文件(.xls)。 每个excel包含string和数字。 他们没有相同的行数。 如何阅读并水平连接它们。

通过单元格中的名称列表重命名工作空间中的variables – MATLAB

我有一些excel文件中的数据。 起初,我通过这个命令读取文件并创build存储在单元中的名称列表: [status,sheets] = xlsfinfo(filename); 我得到: sheets = {'A1','A2','B1','B2','C1'}; (这些是excel文件中excelsheets的名称) 并通过一些过程,我得到这些名称(excelsheets)的每个matrix。 每个最后的matrix被称为: completeData = [x,v,z,y,s]; 现在,我想: 将“completeData”variables的名称更改为其相应的Excel表格(从“sheets”单元格)。 然后将这个新重命名的variables(旧的“completeData”)与其对应的excelsheet的名称(再次从“sheets”单元格)中保存。 到目前为止,我只设法通过这个命令将每个excel表格的完整数据matrix分别保存为表格的名称[点号2]: save(sprintf('%s',sheets{excelSheet}),'completeData'); (这里我有一个循环“excelsheet”) 问题是,当我有Excel的工作表,并将其全部保存在我的硬盘上的文件夹,每当我运行这些保存的variables中的任何一个,我得到的“完整的数据”在工作空间,这是不是我想要的。 我也想获得excelsheet的名字。 我怎样才能做到这一点? PS通过这个命令: eval(sprintf([sheets{excelsheet} '=completeData;'])); (再次在excelsheet循环) 我已经设法创build了几个excel表单名称的matrix。 但我不知道如何通过一个循环来保存这些非常好的新创build的variables,这样我就不会一个一个的去做。

将数据从单元格导出到Excel文件

比方说,我有一个名为data的单元格,如下所示: data{1} = vector1; data{2} = vector2; … data{n} = vectorn; 数据中的所有vector(具有数值)具有相同的1xN大小。 现在,我想将这个数据文件导出到一个.xlsx文档中,每一行都是一个向量,我想标记每一列。 结果应该是这样的: label1 label2 … labelN vector1(1,1) vector1(1,2) … vector1(1,N) … … … … vectorn(1,1) vectorn(1,2) … vectorn(1,N) 我试图做到这一点使用: n=10; N=5; for i=1:n data{i}=rand(1,N); end filename='test.xlsx'; xlswrite(filename,data) 但我的.xlsx文件只包含一行data中的所有数据。 而且我不知道如何去做标签。 请帮帮我。

获取MATLAB中命名的Excel单元格的行号

我正在使用xlsread函数在MATLAB中使用一个非常大的Excel文件。 我特别感兴趣的是一个命名的单元格,比方说它叫做FIRST_DATA。 所以在MATLAB中我打电话给: [num, txt, raw] = xlsread(filename,sheet,'FIRST_DATA') 但是我对这个单元格所包含的数据不感兴趣,而是对这个单元格的行数目感兴趣。 我如何获得这些信息? 我的第一个猜测是首先读取单元格中的数据,然后读取整个表格,最后search结果matrix中的单元格数据以find该行。 但我希望有一个更方便的方法,或者更less的努力。 感谢您的帮助!

使用ActXServer在Matlab中粘贴特殊的移调语法

我正在使用Matlab中的代码,将打开Excel电子表格,复制一定范围,并将其粘贴到一个新的工作表中转移我的范围在过程中。 我完全卡在PasteSpecial方法,并不知道如何使其转置我的数据。 我尝试了所有我能想到的:试过类似VBA的语法(Transpose = True),试过(Transpose,1),尝试过([],[],[],1),试过obj.Transpose在括号内的变化)…和其他各种各样的东西无济于事。 如果有人曾经这样做过,请帮助我。 以下是如果我的简化代码,以防万一需要。 先谢谢你! Excel = actxGetRunningServer('excel.application'); set(Excel, 'Visible', 1); Workbooks = Excel.Workbooks; Workbook = Excel.Workbooks.Open('C:\Users\…test.xlsx'); curr_sheet = get(Workbook,'ActiveSheet'); rngObj = ('A1:C3') rngObj.Copy Sheets = Excel.ActiveWorkBook.Sheets; new_sheet = Sheets.Add; new_sheet.PasteSpecial; %This is where I am stuck!