Tag: matlab

Matlab输出数组为excel或具有特定名称的其他文件格式

我有一个Excel文件的目录,我需要作为一个数组读取到Matlab,转置数组,然后导出回到Excel文件。 Excel文件数组是32626×153,所以我不认为我可以输出到一个Excel文件。 我正在考虑输出到*.txt或*.csv文件,然后在Excel中打开它。 我写的当前代码试图写入一个*.csv文件 我需要输出文件的名称来包含部分input文件的名称。 例如,input文件名是data.xlsx ,我需要将ouyput文件的名称设置为data_transposed.csv 。 以下是我已经写入的代码来读取目录中的*.xlsx文件,并将数据保存到数组,然后转置数组,然后将转置数组写入*.csv文件。 files = dir('*.xlsx'); for i = 1:length(files) filename = files(i).name; [path, name, extention] = fileparts(filename); array = xlsread(filename); transposearray = transpose(array); csvwrite('outputfile.csv' , transposearray) end 这个代码有几个问题: 输出文件的名字是'outputfile'而不是'inputfilename_transpose'一部分,因为我需要它。 (见上面的解释) 输出文件的名字是'outputfile'而不是'inputfilename_transpose'一部分,因为我需要它。 (请参阅上面的解释)此代码仅将目录中的第一个*.xlsx文件写入输出文件。 我知道循环遍历目录中的所有*.xlsx文件,因为当我从其他所有行中取出分号并将csvwrite行注释掉时,Matlab正在摄取正确的信息。 编辑:下面的代码工作输出每个input文件的文件,以及输出文件名称中包括input文件的名称 files = dir('*.xlsx'); for i = 1:length(files) filename = files(i).name; [path, name, extention] = […]

Excel求解器曲线拟合失败 – MatLab重铸

我有一些与Excel的求解器奇怪的问题。 基本上我想要做的是曲线拟合我的数据。 我有两条不同的线,一条是我的校准线,另一条是我试图匹配校准线的派生线。 我的线取决于19个不同的variables参数(也许这是太多了?我已经尝试了更less的结果),我使用求解器来调整这些参数,使两条线尽可能接近。 例如: QP栏包含我想要改变的variables,改变这些将会使我离校准曲线更近或更远。 QP的每个后续值必须大于第一个。 Col=B Col=C Power .QP_' 1 ….. 57000 2 ….. 65000 3 ….. 70000 4 ….. 80000 5 ….. 80000 因此,我的Excel解算器参数看起来像这样: C1:C19>=0,C1:C19<=100000 , C2>=C1, C3>=C2,C4>=C3 …我也尝试制作另一列的差异在每个值之间,然后说这些必须是diff>=0 。 为了将此与我的校准曲线进行比较,我已经获得了校准曲线数据,并从QP导出了我的数据,然后将其平方,以创build我的平方误差总和。 例如: (Calibration-DerivedQP)^2=SS(x) <- where x represents the row number Sum(SS(x))=SSE SSE是我设定的解决scheme,以尽量减less。 而改变QP一切都会自动更新。 没有if语句被使用,没有数据透视表被使用。 如果我删除类似于C2>=C1的参数,一切正常,除了派生值是不可行的。 但是当求解器使用这些参数运行时,什么都不会改变,无论我用什么猜测作为初始值(这样我就可以确保我没有猜到局部最小值),求解器不能改进我的解决scheme。 这使我相信,我的参数中的某些东西正在被打破,因为我可以很容易地通过猜测和检查改进我的解决scheme。 其余的求解器设置都是默认的,而且由于我的曲线并不平滑(我不这么认为),所以使用了渐进方法。我曾经在这种情况下工作过,现在有些东西似乎被破坏了。 任何想法表示赞赏! 非常感谢! 对不起,如果我缺less任何重要的信息。 如果在这些语言中有更好的方法,我也熟悉matlab和R。

在Matlab中编写Excel文件中的可变长度数据

我想创build一个从Matlab的Excel文件与多个案例的数据。 excel文件应该是这样的: Case #|____________________________Line 1_____________________________________________|_______ Line 2 _____________ … |______Node 1______|______Node 2______|______Node 3______|…|______OverAll_____| | Min|Max|Mean|Std | Min|Max|Mean|Std | Min|Max|Mean|Std |…| Min|Max|Mean|Std | |_______________________________________________________________________________| 1| | | | | | | | | | | | | | | | | 2| | | | | | | | | | | | | | | […]

在MATLAB中使用xlsread函数

让我们考虑下面的数据 XY 2 3 4 5 8 7 11 7.5 14 8 18 9 21 12 我使用了以下命令 >> Y=xlsread('regression','Sheet1','f5:f11'); >> X=xlsread('regression','Sheet1','e5:e11'); 因为excel文件的名称是回归的,它在Sheet1和列是相对应的 f5:f11 e5:e11 但它回报我空载体,是什么问题?

导入Excel到Matlab没有数字数据出现在科学记数法

我的问题是有经验的Matlab用户希望是一个简单的问题。 如何将数据导入到Matlab,而无需Matlab自动将数字数据转换为科学记数法? 我正在使用的数据是身份证号码,长达12位数字,所以我需要看到(例如) 30094111063 并不是 3.0094e + 10 否则Matlab混淆了类似的ID号码,例如30094111063和30094111742,后面在代码中作为“匹配”,因为它们都显示为3.0094e + 10。 我迄今试过的东西没有成功:xlsread,uiopen,sscanf。 我也看到了StackOverflow上非常类似的问题的答案,但是对于Access,R,Python等而不是Matlab,所以希望这对未来的用户有用。 谢谢! 编辑:这是我正在使用的代码的一个例子: A = xlsread('test1974.xlsx'); B = xlsread('test1975.xlsx'); adj = zeros(N,N); for i=1:N; for j=1:N; if A(i,:) == B(:,j) adj(i,j) = 1; else adj(i,j) = 0; end; end; end; 代码正在创buildA和B之间的“假阳性”匹配。

在MATLAB中从xlsx文件读取混合variables

我想读取matlab中的xlsx文件。 xlsx文件包含数字和非数字(string)variables。 当我尝试通过xlsread(filename)读取文件时,非数字variables看起来像NaN 。 我的意思是; 我的xlsx文件喜欢; 13 96 partly cloudy 12 98 clear 13 99 clear 14 97 partly cloudy 但是当我通过xlsread(filename)读取时,值如下所示; 13 96 Nan 12 98 Nan 13 99 Nan 14 97 Nan 如何读取所有types的值,并从MATLAB中的xlsx文件分配一个variables?

如何将输出从matlab转换为excel

这是我的程序: x= 9; fprintf(' az \n _ _ \n'); for a = 0:4 z =x+a; fprintf(' %d %d\n',a,z); end 我怎样才能将输出转换成excel spreedsheet? 或文件?

fread错误? 无效的文件标识

执行时,我有这个错误? 错误使用==> fread无效的文件标识符。 使用fopen生成一个有效的文件标识符。 fid等于-1,但文件确实存在。 我该怎么办? seq=dir('C:\Windows\system32\config\systemprofile\Desktop\pfe\code final version 1\nor\info'); N=[]; for i = 3 : length(seq) disp(seq(i).name) cd 'C:\Windows\system32\config\systemprofile\Desktop\pfe\code final version 1\nor\info' fin = fopen('seq(i).name','r'); [x,count]=fread(fin,'char=>char'); cd 'C:\Windows\system32\config\systemprofile\Desktop\pfe\code final version 1' M=fichier(fin,x); N=[N;M]; end xlswrite('info.xls',N);

将简单的VB脚本转换为MATLAB

我有一些问题将简单的VB脚本(格式化)转换为MATLAB: VB脚本: Range("A1").Select Selection.Font.Italic = True With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous End With 我试过了: xlswrite('test.xls',1,'A1'); Excel = actxserver('Excel.Application'); Excel.Workbooks.Open('test.xls'); Range = Excel.Range('A1'); Range.Font.Italic = True; % Doesnt work Range.Border.Item('xlEdgeRight').LineStyle = 1; % Doesnt work Excel.Visible = 1; 任何解决方法? 谢谢

xlswrite在载体的情况下

我有一个.mat文件,其中包含titles={'time','data'}和2个列向量: time=[1;2;3;4;5]和data=[10;20;30;40;50] 。 我创build了一个名为table = {'time','data'; time data}的新单元,我使用了: xlswrite(filename,table); 但是,当我打开xlsx文件,它显示我只有标题,并没有显示数字。 我看到,xlswrite将显示空单元格的情况下,即时尝试导出多个单元格中的数字。 有什么我可以做出口整个向量,而不是写在它的单元格中的每个值? 我试图得到的最终结果是这样的: time data 1 10 2 20 3 30 4 40 5 50