matlab数据存成脚本,matlab的excel的读和写(生成脚本m文件)
1. 讀取Excel文件
(a) 命令方式xlsread:
讀取命令:[data,text] ?= xlsread(FileName, SheetName, Range);
data保存的是數據單元格的值, text保存的是字符串單元格的內容。
2. 將MATLAB數據寫入到Excel
寫入命令:xlswrite(FileName, Output, SheetName, Range)
其中Output為要寫入的數據,可以是矩陣也可以是cell類型
使用例子1:
%% 導入數據
[~, ~, raw] = xlsread('1.xlsx','Shee');
raw(cellfun(@(x) ~isempty(x) && isnumeric(x) && isnan(x),raw)) = {''};
%% 將非數值元胞替換為 NaN
R = cellfun(@(x) ~isnumeric(x) && ~islogical(x),raw); % 查找非數值元胞
raw(R) = {NaN}; % 替換非數值元胞
%% 創建輸出變量
data = reshape([raw{:}],size(raw));
%% 將導入的數組分配給列變量名稱
VarName1 = data(:,1);
VarName2 = data(:,2);
VarName3 = data(:,3);
VarName4 = data(:,4);
VarName5 = data(:,5);
VarName6 = data(:,6);
VarName7 = data(:,7);
VarName8 = data(:,8);
VarName9 = data(:,9);
VarName10 = data(:,10);
VarName11 = data(:,11);
%% 清除臨時變量
clearvars data raw R;
這個代碼如何生成呢?
在命令窗輸出uiimport,然后選擇要導入的文件
點擊:
然后就可以看到生成matlab代碼,就可以安裝自己要求編寫需要導入的內容了。
使用例子2:
excelPath='excel';
excelStr = dir(fullfile([excelPath,'*.xlsx']));
excelName = excelStr.name;
savePath='';
P = '..\';
D = dir([P '*.png']);
A=[];
[~,TXT1] = xlsread([excelPath,excelName],'SheetName','C1:L1');
[~,~,TXT2] = xlsread([excelPath,excelName],'sheetname','A2:B251');
for k = 1 : length(D)
x=imread([P D(k).name]);
s=strcat(savePath,D(k).name);
imwrite(x,s);
end
使用例子3:
(1) xlswrite('filename.xls', data)將data導入到filename.xls表中,從頭開始寫入data數據。
如xlswrite('matrix.xls', data),data=[1 2 3; 4 5 6],則matrix.xls表的最開始兩行將被寫入data這兩行數據。
(2) xlswrite('filename.xls', data, ‘range’)。range表示將data導出道excel表的區域,有區域的對角值表示區域。
如xlswrite(‘matrix.xls', data, ‘A12:J29’)則matrix.xls表中的A12:J29’區域將被填寫data的數據。
(3) xlswrite('filename.xls', data, ‘sheet‘, ’range‘)。sheet表示將data數據寫在excel的哪個表格里面。剩余的單元被賦予控制沒看起來像亂碼的樣子。
如xlswrite(‘matrix.xls', data,’sheet2‘ , ‘A12:J29’)則matrix.xls的sheet2單元的A12:J29單元將被充滿數據。
大家覺得每次是不是excel很煩需要通過代碼編寫,為什么不寫一個腳本來實現讀和寫的功能呢?
my_excel.m關于matlab和excel的數據導入導出
function [A, d] = loda_down_data(sheet, range, number)
C=xlsread('test.xlsx',sheet, range);
C=C';
r=length(C);
for i=1:1:r
for j=1:1:r
A(i, j) = C(1, i) / C(1, j);
end
end
xlswrite('result1.xlsx', A, number, 'E2:O12');
%Compute vector and roots
%v is vector,d is roots
[v, d] = eig(A);
[x,y]=find(d==max(d(:)));
xlswrite('result.xlsx', d(x, y),number, 'B13');
B=v;
[R, W]=size(B);
xlswrite('result.xlsx', A/sum(A), number, 'B14:B24');
end
總結
以上是生活随笔為你收集整理的matlab数据存成脚本,matlab的excel的读和写(生成脚本m文件)的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 网络的东西南北
- 下一篇: iOS gif加载视图
