※ 引述《yydevil (.........)》之銘言:
: 不好意思請問一下
: 我讀excel檔案時語法是用 A=xlsread('ABC.xls');
: 但是我要讀的是一個200 by 5的矩陣
: 結果出現錯誤
: Warning: See help sprintf for valid escape sequences.
: > In iofun\private\validpath at 59
: In xlsread at 187
: ??? XLSREAD unable to open file ABC.xls.
: Error using ==> iofun\private\validpath
: MATLAB:C:
: 可是我用這種語法隨便讀個2 by 3的矩陣就ok
: 難道有限制矩陣的大小嗎
: 如果有該如何解決呢 謝謝
可試試底下的方法
假設 ABC.xls 在 Sheet1 中,從 B2~F201 已放置 200 by 5 的矩陣
而 matlab 檔案(xxx.m) 和 ABC.xls 置於同資料夾
xxx.m 的內容如下
===========================================================================
%% 開啟 ABC.xls
Excel = actxserver('Excel.Application');
set(Excel, 'Visible', 1);
Workbooks = Excel.Workbooks;
Workbook = invoke(Workbooks, 'Open', [cd,'\ABC.xls']);
%% 讀取 ABC.xls:sheet1 B2(即 R2C2)~F201(即 R201C6) 範圍內的 200 by 5 矩陣
read_excel=ddeinit('excel','ABC.xls:sheet1');
getmatrix = ddereq(read_excel, 'r2c2:r201c6');
getmatrix
%% 關閉 ABC.xls
invoke(Excel, 'Quit');
delete(Excel);
============================================================================
寫法的參考來源:
http://www.mathworks.com/support/solutions/data/1-17PWC.html?1-17PWC
http://www.mathworks.com/support/solutions/data/1-19BU0.html?1-19BU0
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.68.236.29