Concatenate cells leaving columns/rows empty

5 次查看(过去 30 天)
If I want to concatenate 2 cells I can use []. For example:
>> a={'lala'};b={'lolo'};c=[a,b]
c =
1×2 cell array
{'lala'} {'lolo'}
However, if I want to leave a column (or row if I'd had concatenated them vertically) empty, I have to create an empty array to "occupy" the space:
>> d=cell(1,1);
>> c=[d,a,b]
c =
1×3 cell array
{0×0 double} {'lala'} {'lolo'}
I have not been able to change the position of a and b without creating the empty cell. Is there a way to choose their position just by indexing? I don't really care what the "empty cell" is.

采纳的回答

Guillaume
Guillaume 2019-11-7
Do you mean this:
c = {}; %or better if you know the final size:
%c = cell(1, 3);
c(1, [1 3]) = [a,b]; %put a at column 1 and b at column 3
?
  3 个评论
Guillaume
Guillaume 2019-11-7
It's a simple assignment using indexing. As long as the left-hand and right-hand side have the same size (or the right-hand side is scalar) it just work.
c(1, [1 3]) is a two-element portion of the destination cell array to which you assign a two-element cell array.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

产品


版本

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by