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 Commenti

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}?

Accedi per commentare.

 Risposta accettata

Jan
Jan il 27 Set 2022
Modificato: Jan il 27 Set 2022
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 Commenti

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.

Accedi per commentare.

Più risposte (0)

Categorie

Prodotti

Release

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by