2017-11-14 22 views
0

私は33213168x1個のセル配列を持っています。各セルには85 x 1列があります。区切り文字で区切られたセル配列列

列の各セルは形である

[0.55;0.25;0.75] 

[0.33;0.66;0.99] 

Iがセルアレイ内の各セルは85x3は次のように、となるようにセミコロン区切り文字によって、この単一の列を分割する:

[0.55][0.25][0.75] 

[0.33][0.66][0.99] 

これを解決するためにさまざまな方法を試しましたが、最も一般的なエラーは「セル要素は文字配列でなければなりません」または「入力は文字列でなければなりません。

私が試したのアプローチのいくつか:

splitcells = strsplit(regress_original_053108,';'); 
splitcells = cellfun(@(x) strsplit(regress_original_053108, ';'),regress_original_053108 , 'UniformOutput',0); 
splitcells = regexp(regress_original_053108, ';', 'split'); 
splitcells = textscan(regress_original_053108, 'delimiter', ';'); 

これを行う方法についてのすべてのフィードバックをいただければ幸いです。

+0

'[0.55; 0.25; 0.75]'は文字列か行列ですか? – anyanwu

+0

私はそれが行列だと仮定します。私が使った括弧は、セル配列で使われているものと同じものです。また、セルを分割しようとすると、データが文字列ではないというエラーが発生します。 – user5858

答えて

1

・ホープこれはあなたの問題を解決:

% Example input 
input = {[0.55;0.25;0.75]}; 
cellArray(1:85,1) = input; 

% Create array 
doubleArray = zeros(85,3); 

% Fill array 
for i=1:85 
    doubleArray(i,:) = cellArray{i,1}'; 
end 
0

あなたが持っている各セルは、したがって、あなたがstrsplitを使用することはできません、文字列ではありません。このアプローチを使用してください:

for ii = length(X) % Here X denotes your 33213168x1 cell array 
    X{ii} = cell2mat(cellfun(@(y) y.', X{ii}, 'UniformOutput', false)); 
end 
+0

これを使用すると、エラー 'cellfunを使用しているエラー 入力#2がセル配列であると予想され、代わりに2倍でした。 – user5858

関連する問題