2016-11-09 17 views
1

セル配列を作成しましたが、そのセル配列のコマンドウィンドウ形式を取得したいと思います。例えば既存の「セル配列」のコマンドウィンドウ形式を取得する方法MATLAB

:私は、コマンドラインを使用して5X2のセル配列を作成しました:

同様
MyCell = {'time' , 'timestamp';'posX', {'DePositionX', 'DePositionXmm'};'posY', {'DePositionY', 'DePositionYmm'};'velocityX', 'DeVelocityX';'velocityY', 'DeVelocityY'}; 

私はすでに(ない私が)作成されたM×N個のセル配列を持っていると私は中にそのセルの構造を取得したいです上記のコードに示すようなコマンドウィンドウの形式。これを得るための方法やコマンドがあるかどうか教えてください。

ありがとうございました。

+1

独自の文字列を作成する必要があります。簡単な方法はありません。 – thewaywewalk

+0

[this](http://stackoverflow.com/a/38553646/2586922)が役に立ったかどうかを確認 –

答えて

0

ここでは、必要な機能を実現する必要があります。 Per-Anders Ekstromのcell2str(https://www.mathworks.com/matlabcentral/fileexchange/13999-cell2str)の再帰バージョンです。少なくとも要素が(再帰的に)セル、char、数値、または論理型のセル配列で動作するはずです。

function s = cell2str(C) 

% input checking 
if ~iscell(C) || ~ismatrix(C) 
    error('Input must be a 2-d cell array'); 
end 

% get size of input 
S = size(C); 

% transpose input so will be traversed in rows then columns 
C = C.'; 

% initialize output string with open bracket 
s = '{'; 

% iterate over elements of input cell 
for e = 1:numel(C) 
    if ischar(C{e}) % if element is char, return a string that will evaluate to that char 
     s = [s '''' strrep(C{e},'''','''''') '''']; 
    elseif iscell(C{e}) % if element is cell, recurse 
     s = [s cell2str(C{e})]; 
    else % if element is not char or cell, try to convert it using mat2str 
     s = [s mat2str(C{e})]; 
    end 
    % add a semicolon if at end of row or a comma otherwise 
    if mod(e, S(2)) 
     s = [s ',']; 
    else 
     s = [s ';']; 
    end 
end 

% complete output string with closing bracket 
s = [s '}']; 

声明

isequal(MyCell, eval(cell2str(MyCell))) 

がtrueと評価さ、あなたが提供するセルアレイと、それをチェックします。

+0

乾杯。 –

関連する問題