Excelからデータを読み出して、行列のデータを列に変換したいなぁと思いましてちょいと書いてみました。
詳細はMatlab公式サイトを参照して下さい。
ワークシートまたは範囲のインポート - MATLAB & Simulink - MathWorks 日本
clear all close all %読み込むエクセルのファイル指定 filename = 'Book1.xlsx'; %読み込むファイルのシート指定 sheet = 'Sheet1'; %なくてもいいかな。 [type, sheets] = xlsfinfo(filename); [num,headertext] = xlsread(filename,sheet); %エクセルの範囲指定 xlrange= 'A2:D4'; A = xlsread(filename,sheet,xlrange); %エクセルの範囲指定 xlrange= 'A5:D11'; B = xlsread(filename,sheet,xlrange); %行列Bの行数と列数 [bx,by]=size(B); %行列を列に変換 L=bx*by; b=zeros(L,1); k=1; for j = 1:by for i = 1:bx b(k) = B(i,j); k=k+1; end end %列をmatファイルとして保存 save b.mat
csvreadも似たような感じ
初心者によるMATLABメモ|CSV形式のデータの読み書き
clear all close all %読み込むエクセルのファイル指定 filename = 'sample.csv'; %csvの範囲設定 %行のオフセットR1~R2 %列のオフセットC1~C2 R1=1; C1=0; R2=1; C2=3; A = csvread(filename,R1,C1,[R1, C1, R2, C2]); %csvの範囲設定 %行のオフセットR1~R2 %列のオフセットC1~C2 R1=3; C1=0; R2=9; C2=3; B = csvread(filename,R1,C1,[R1 C1 R2 C2]); %行列Bの行数と列数 [bx,by]=size(B); %行列を列に変換 L=bx*by; b=zeros(L,1); k=1; for j = 1:by for i = 1:bx b(k) = B(i,j); k=k+1; end end %列をmatファイルとして保存 save b.mat
dlmreadも同様
数値データの ASCII 区切りファイルを行列に読み込む - MATLAB dlmread - MathWorks 日本