Conversion to cell from double is not possible

2 ビュー (過去 30 日間)
Stephen Thompson
Stephen Thompson 2018 年 5 月 22 日
回答済み: OCDER 2018 年 5 月 22 日
I don't understand why I am getting this error.
1. This works...
onset_time_first = cell(ratio_channels,4);
onset_time_first (:, 1) = cellfun(@(x,y,z)(cusum(x, climit, mshift, y, z)), beta_cell(:, 1), beta_cell (:, 2), beta_cell (:, 3), 'UniformOutput', false);
Here beta_cell is a 189x3 cell. This is repeated 3 more times.
2. This does not work...
onset_time_second = cell(ratio_channels,4);
onset_time_second (:, 1) = cellfun(@(x)(findchangepts(x, 'Statistic', 'mean')), beta_cell_second);
Here beta_cell_second is a 189x1 cell. This is repeated 3 more times.
The syntax is identical but the first works and the second doesn't. It doesn't help to add "beta_cell_second(:))"

採用された回答

OCDER
OCDER 2018 年 5 月 22 日
If you want the output to be a cell in the case 2, you have to do this
onset_time_second = cell(ratio_channels,4);
onset_time_second (:, 1) = cellfun(@(x)(findchangepts(x, 'Statistic', 'mean')), beta_cell_second, 'UniformOutput', false)
To help you understand, try this:
A = num2cell(1:10);
O = cell(1, 10);
B = cellfun(@(x) x(1), A); %Returns double matrix
C = cellfun(@(x) x(1), A, 'un', 0); %Returns cell array
O(:) = B; %ERROR! Conversion to cell from double is not possible
O(:) = C; %OKAY!

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeData Type Conversion についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by