Clear Filters
Clear Filters

add cell to arraycell

27 views (last 30 days)
Luca Re
Luca Re on 20 Jul 2024 at 18:45
Commented: Luca Re on 20 Jul 2024 at 19:24
i want to add sistema to oldList but i reveive error
newList=[{sistema} oldList];
Error using horzcat
Dimensions of arrays being concatenated are not consistent.

Answers (2)

Milan Bansal
Milan Bansal on 20 Jul 2024 at 19:18
Edited: Milan Bansal on 20 Jul 2024 at 19:19
Hi Luca Re,
I understand that you wish to add a new row in the cell array "oldList" whole first element is "sistema" but are facing issues with it.
The variable "oldList" in the attached .MAT file is a cell array with 3 rows and 15 columns, where as the variable "sistema" is just a string. Hence concatenating them directly is not possible due to inconsistent dimensions. However you can add the "sistema" in the "oldList" in a new row as shown in the code snippet below:
load("matlab_cell.mat")
newRow = cell(1, 15);
newRow{1, 1} = sistema;
% Concatenate newRow with oldList to create newList
newList = [newRow; oldList]
newList = 4x15 cell array
Columns 1 through 10 {["ES_Live_MPV ..."]} {0x0 double} {0x0 double} {0x0 double} {0x0 double } {0x0 double } {0x0 double} {0x0 double} {0x0 double} {0x0 double} {'ES_Live_MPV Es...'} {[ 1]} {'ES' } {'On Micro'} {'2023/12/01'} {'From instrument'} {[ 0]} {'Trend' } {'Multiday'} {'No' } {'ES_Live_MPV Es...'} {[ 1]} {'ES' } {'On Micro'} {'2024/05/01'} {'From instrument'} {[ 0]} {'Trend' } {'Intraday'} {'No' } {'ES_Live_MPV Es...'} {[ 1]} {'ES' } {'On Micro'} {'2008/01/01'} {'From instrument'} {[ 6]} {'Trend' } {'Intraday'} {'No' } Columns 11 through 15 {0x0 double} {0x0 double} {0x0 double} {0x0 double} {0x0 double} {[ 1]} {[ 0]} {[ 0]} {[ 0]} {[ 0]} {[ 1]} {[ 0]} {[ 0]} {[ 0]} {[ 0]} {[ 1]} {[ 0]} {[ 0]} {[ 0]} {[ 0]}
Hope this helps!
  1 Comment
Luca Re
Luca Re on 20 Jul 2024 at 19:24
I realized now that they have different sizes :(

Sign in to comment.


LeoAiE
LeoAiE on 20 Jul 2024 at 19:03
Not sure if I understand your question here but I think you can do this:
oldList = {struct('field1', 1), struct('field1', 2)};
sistema = struct('field1', 3);
% Convert sistema to a cell and concatenate
newList = [{sistema}, oldList];

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!