cell配列内のstring配列を文字数で分割して、新たなcell配列を作る方法を教えてください。
    6 ビュー (過去 30 日間)
  
       古いコメントを表示
    
下記のような10×1のcell配列 cがあります。
cの各要素は16文字で、これを8文字ずつ分割し、
10×2のcell配列 dを作る方法を教えていただきたいです。
よろしくお願いいたします。
a = randn(1,10);
T = numerictype(true,64,60);
F = fimath('OverflowMode',          'saturate',...
           'RoundMode',             'round',...
           'SumMode',               'FullPrecision',...
           'ProductMode',           'FullPrecision',...
           'MaxProductWordLength',  256,...
           'MaxSumWordLength',      256);
a_fi = fi(a,T,F);
b_fi = hex(a_fi);
c = strsplit(b_fi)'
0 件のコメント
採用された回答
  Hernia Baby
      
 2022 年 7 月 21 日
        a = randn(1,10);
T = numerictype(true,64,60);
F = fimath('OverflowMode',          'saturate',...
           'RoundMode',             'round',...
           'SumMode',               'FullPrecision',...
           'ProductMode',           'FullPrecision',...
           'MaxProductWordLength',  256,...
           'MaxSumWordLength',      256);
a_fi = fi(a,T,F);
b_fi = hex(a_fi);
c = strsplit(b_fi)'
% 1~8文字だけ抜き出す
c1 = cellfun(@(x) x(1:8),c,'UniformOutput',false)
% 9~最後まで抜き出す
c2 = cellfun(@(x) x(8:end),c,'UniformOutput',false)
% 2つのcellを結合
c3 = [c1, c2]
3 件のコメント
  Atsushi Ueno
      
 2022 年 7 月 21 日
				
      編集済み: Atsushi Ueno
      
 2022 年 7 月 21 日
  
			細かいですが誤記を指摘します。誤記は回答の方だけで、上記コメントの方は正しくなっています。
c2 = cellfun(@(x) x(8:end),c,'UniformOutput',false) % 9~最後まで抜き出す【誤】
c2 = cellfun(@(x) x(9:end),c,'UniformOutput',false) % 9~最後まで抜き出す【正】
あとどうしても「もっと少ない手で出来ないか」とcody脳が疼きます。strsplit 関数は文字ベクトル や string スカラーしか受け付けませんが、文字ベクトルの cell 配列を受け付ける文字列処理関数も多いです。
c = {'0c23f10982cb9580';'1acea553c2c99c00'}; % 2行コピーしました
d = regexp(c,'.{8}','match'); % 任意の8文字にマッチした文字列を出力する
e = vertcat(d{:}) % ネストした cell 配列を1段階ほどく
  Akira Agata
    
      
 2022 年 7 月 26 日
				この問題、私もcody脳が疼きました。
以下のような方法ではどうでしょう?
c = {'0c23f10982cb9580';'1acea553c2c99c00'};    % 2行コピーしました
c2 = regexprep(c,'(^\w{8})(\w{8}$)','$1,$2');   % 最初の8文字と最後の8文字の間にカンマを入れる
e = split(c2,',')                               % カンマでスプリット
その他の回答 (0 件)
参考
カテゴリ
				Help Center および File Exchange で Other Formats についてさらに検索
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


