data extraction from a cell - indexing

Hi
in the MATLAB programming course (https://matlabacademy.mathworks.com/R2024a/portal.html?course=mlpr#chapter=2&lesson=6&section=1) it is explained how cell array indexing works:
"You can index into a cell array using standard MATLAB indexing with parentheses, (). this returns a portion of the orgiginal cell array, and is therefore itself a cell array.
You can access the contents of cells in a cell array by indexing with curly braces, {}, rather than parentheses, ()."
Does this mean that { } dereference a pointer whereas () gives a pointer?
Lisa

3 comentarios

Stephen23
Stephen23 el 19 de Jun. de 2024
Editada: Stephen23 el 19 de Jun. de 2024
"Does this mean that { } dereference a pointer whereas () gives a pointer?"
In an approximate way you could think of it like that.
But rather than thinking in terms of pointers it is much more useful to think in terms of arrays. Arrays are what MATLAB works with. Container arrays (e.g. cell arrays) can contain other arrays. That is all. Where and how those arrays are stored in memory and how many copies of them exist are not matters that generally need to be considered by MATLAB users in most circumstances:
Some users with a programming background struggle with MATLAB because they keep trying to understand everything in terms of concepts that apply to C/C++ or whatever language they happen to like.
Elisabeth
Elisabeth el 20 de Jun. de 2024
MATLAB is based on C (not C++) and its most important data structure is an array, designed to handle linear algebra problems. Why is MATLAB not based on C++? Is MATLAB a kind of aggregation level regarding C? Has it something in common with an interpreter? During my learning process I always come back to these questions and I would like to have a rough idea about what I am working with.
Stephen23
Stephen23 el 20 de Jun. de 2024
Editada: Stephen23 el 20 de Jun. de 2024
"MATLAB is based on C"
MATLAB is not "based on C". The foundational concepts of MATLAB evolved before C was first released in 1972:
If anything, the biggest influence on MATLAB is probably FORTRAN.
Do not confuse the MATLAB language with the MATLAB JIT engine (mostly written in some kind of C). Do not confuse what languages the MATLAB JIT engine is written in with what language the MATLAB language is based on. Mixing things up will not help you understand how to use MATLAB or Python or any other high-level language.

Iniciar sesión para comentar.

 Respuesta aceptada

aditi bagora
aditi bagora el 26 de Jun. de 2024

0 votos

Hi Elisabeth,
I understand that you are curious regarding the cell arrays datatype.
In my understanding cell arrays are a data structure developed for handling heterogeneous data types within a single container. Since, a cell array can store another cell-array or any other data type; different ways of retriving the information from cell arrays is defined in MATLAB.
In order to retrieve a content from a cell within a cell array "{}" are used; whereas to retrieve a portion of cell array "()" is used.
These are simple retrieval methods to retrive a portion of the cell array or a value in the cell.
Please refer to the following MathWorks documentation for more information:
Hope this helps!

Más respuestas (0)

Categorías

Más información sobre Creating and Concatenating Matrices en Centro de ayuda y File Exchange.

Preguntada:

el 19 de Jun. de 2024

Respondida:

el 26 de Jun. de 2024

Community Treasure Hunt

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

Start Hunting!

Translated by