Remove the 1x1 Cell Array from the Cell Array

Hey everyone,
I have the following code:
s{1} = [4 2];
s{2} = [2 1];
S{1} = [s{1}];
m = 1;
m = 1
for j = 1:m
Temp_D{j} = S{j} - s{j+1};
end
Temp_D = cell2sym(Temp_D);
D{1} = Temp_D;
D{1}
ans = 
However, when I use this chunk of code as a function in my code, I get the following result :
Why do I need to do D{1}{1} To access the the array [2, 1], can I solve this problem?

2 Comments

Why do you consider this as a "problem". It is exactly, what the code instructs Matlab to do. What do you want instead?
Because I want the output to be D{1} = [2, 1], instead.
In this way, let’s assume I added one more array to D, such that D{2} = [1, 2, 0], how can I access it? Is it by D{2}{1}?

Sign in to comment.

 Accepted Answer

If you want D{1} = [2, 1], use:
D{1} = [2, 1]
D = 1×1 cell array
{[2 1]}
% or equivalently
D = {[2, 1]}
D = 1×1 cell array
{[2 1]}
Expanded:
D = {[2,1], [1,2,0]}
D = 1×2 cell array
{[2 1]} {[1 2 0]}
D{1}
ans = 1×2
2 1
D{2}
ans = 1×3
1 2 0
Maybe in your case:
D = Temp_D;
% not D{1} = ...
What is the purpose of cell2sym?

3 Comments

Thank you so much
cell2sym basically put all the arrays in the cell into one array; therefore, I can use that to put the array as D{1}.
Also, I found that since I am using a function as D{i} = “and then I call my function”, this is basically why I get a cell array at D{1}, because basically I am calling D{i} twice, once in the function and once in the main code, and so I declared the variable in the function as D.
Okay. Do you really want a symbolic array?
I used the cell2sym to put all the arrays in Temp_D in one array, and then I can put it as a single array in the first cell of D. So yes I want a symbolic array.

Sign in to comment.

More Answers (0)

Categories

Products

Release

R2021a

Asked:

on 27 Sep 2022

Commented:

on 27 Sep 2022

Community Treasure Hunt

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

Start Hunting!