Takuya Miyashita
This site
Web
Start:
*セル配列の操作 メモ [#x2c8f675]
#contents
**基本 [#g2515e16]
セル配列は文字列も数値も格納できる.処理は速くないらしい...
セル配列Aがあるとすると,原則下記のように2種類の表記がで...
~
#codeprettify(lang-matlab){{
A(xx,xx)
A{xx,xx}
}}
()の括弧は配列をセルとして取り出すもの,~
{}の括弧はセルの括弧を外し,配列の中身自体を見るものだと...
A{xx,xx}はセルの括弧を外しているので,cell2matは不要.~
セルの中にセルを入れることもできるので,どれに着目してい...
~
**セル配列の作成 [#y015da79]
ny行nx列のセル配列を作成する.各要素には空行列が入る.
&codeprettify(lang-matlab){A = cell(ny,nx);};
~
**セル配列の削除 [#z4f57147]
セルの配列自体を消す.下記は5行目以降消したいとき.
&codeprettify(lang-matlab){A(5:end,:) = [];};
~
**セル配列の要素の中身を削除 [#nb98c93f]
セルのある要素の中身を消す.下記の操作後も,配列Aの要素数...
&codeprettify(lang-matlab){A{row,col} = [];};
~
**セルから数値のmatrixに変換 [#hf5a41e6]
全て数値で中身がmatrixになっていれば可能.
&codeprettify(lang-matlab){AA = cell2mat(A(row,col));};
~
**セルの配列の結合 [#d73a354c]
互いに1行か1列で列数と行数が一致していれば可能.
#codeprettify(lang-matlab){{
AA = vertcat(A{:,col});
BB = horzcat(A{row,:});
}}
ちなみにN行1列のセルで
&codeprettify(lang-matlab){A = vertcat(A);};
だと何も起きず,
&codeprettify(lang-matlab){A = vertcat(A{:});};
にすると全部統合されて1つのmatrixになった.~
また,セルの中身が全て同じサイズの2次元配列 (ny, nx) で,...
#codeprettify(lang-matlab){{
A = cat(3, A{:}); % 3は 3次元目の意.
}}
~
**セル配列の要素ごとに同じ関数を適用 [#ua4a48a0]
for文を使わずにセルの中で同じ処理を実行したいときに,cell...
下の例は,セル要素の中身が空かどうか(isempty)をそれぞれの...
#codeprettify(lang-matlab){{
>> A = cell(2,2);
>> b = cellfun(@isempty,A)
b =
2×2 logical array
1 1
1 1
>> A{2,1} = zeros(5,5);
>> b = cellfun(@isempty,A)
b =
2×2 logical array
1 1
0 1
}}
関数を渡すのに@を忘れないように.~
@で自作の関数を定義すればそれを利用することもできる.~
~
複数の入力引数がある function を cellfun へ渡すときは,下...
#codeprettify(lang-matlab){{
% 利用可能なフォント一覧を取得, Nx1 のセル配列
fonts = listfonts;
% セル配列の中に 'Times' という文字列が含まれているかを判定
array_logical = cellfun(@(x) contains(x,'Times'), fonts);
}}
このように, @(x) function_name(x,args) とすることで,セ...
End:
*セル配列の操作 メモ [#x2c8f675]
#contents
**基本 [#g2515e16]
セル配列は文字列も数値も格納できる.処理は速くないらしい...
セル配列Aがあるとすると,原則下記のように2種類の表記がで...
~
#codeprettify(lang-matlab){{
A(xx,xx)
A{xx,xx}
}}
()の括弧は配列をセルとして取り出すもの,~
{}の括弧はセルの括弧を外し,配列の中身自体を見るものだと...
A{xx,xx}はセルの括弧を外しているので,cell2matは不要.~
セルの中にセルを入れることもできるので,どれに着目してい...
~
**セル配列の作成 [#y015da79]
ny行nx列のセル配列を作成する.各要素には空行列が入る.
&codeprettify(lang-matlab){A = cell(ny,nx);};
~
**セル配列の削除 [#z4f57147]
セルの配列自体を消す.下記は5行目以降消したいとき.
&codeprettify(lang-matlab){A(5:end,:) = [];};
~
**セル配列の要素の中身を削除 [#nb98c93f]
セルのある要素の中身を消す.下記の操作後も,配列Aの要素数...
&codeprettify(lang-matlab){A{row,col} = [];};
~
**セルから数値のmatrixに変換 [#hf5a41e6]
全て数値で中身がmatrixになっていれば可能.
&codeprettify(lang-matlab){AA = cell2mat(A(row,col));};
~
**セルの配列の結合 [#d73a354c]
互いに1行か1列で列数と行数が一致していれば可能.
#codeprettify(lang-matlab){{
AA = vertcat(A{:,col});
BB = horzcat(A{row,:});
}}
ちなみにN行1列のセルで
&codeprettify(lang-matlab){A = vertcat(A);};
だと何も起きず,
&codeprettify(lang-matlab){A = vertcat(A{:});};
にすると全部統合されて1つのmatrixになった.~
また,セルの中身が全て同じサイズの2次元配列 (ny, nx) で,...
#codeprettify(lang-matlab){{
A = cat(3, A{:}); % 3は 3次元目の意.
}}
~
**セル配列の要素ごとに同じ関数を適用 [#ua4a48a0]
for文を使わずにセルの中で同じ処理を実行したいときに,cell...
下の例は,セル要素の中身が空かどうか(isempty)をそれぞれの...
#codeprettify(lang-matlab){{
>> A = cell(2,2);
>> b = cellfun(@isempty,A)
b =
2×2 logical array
1 1
1 1
>> A{2,1} = zeros(5,5);
>> b = cellfun(@isempty,A)
b =
2×2 logical array
1 1
0 1
}}
関数を渡すのに@を忘れないように.~
@で自作の関数を定義すればそれを利用することもできる.~
~
複数の入力引数がある function を cellfun へ渡すときは,下...
#codeprettify(lang-matlab){{
% 利用可能なフォント一覧を取得, Nx1 のセル配列
fonts = listfonts;
% セル配列の中に 'Times' という文字列が含まれているかを判定
array_logical = cellfun(@(x) contains(x,'Times'), fonts);
}}
このように, @(x) function_name(x,args) とすることで,セ...
Page:
Edit with a page name which already exists