maximum and minimum of each columns of a cell array

14 visualizaciones (últimos 30 días)
sam moor
sam moor el 17 de Mayo de 2016
Editada: sam moor el 18 de Mayo de 2016
I have a cell array of 1x16. In each cell there is a number of columns and rows data. I want to find maximum and minimum of each column of each data i.e data{1,1},data{1,2}.....data{1,16} ans store in a matrix so that i can plot the graph. how do i find out maximum and minimum of such cell array data and store in a a matrix? I have attached the screenshot for clear understanding.
  1 comentario
Matt J
Matt J el 17 de Mayo de 2016
If all data{i,j} are the same size, then you probably should be using normal numeric arrays, instead of cell arrays.

Iniciar sesión para comentar.

Respuesta aceptada

Star Strider
Star Strider el 17 de Mayo de 2016
I’m not certain how your cell array is organised, so see if this works with your data:
Data = {randi(99, 9), randi(99, 9), randi(99, 9)}; % Create Data
Max_Col_Cell = cellfun(@max, Data, 'Uni',0); % Cell Array Of Maximum Column Values
Max_Col_Num = cell2mat(Max_Col_Cell'); % Convert To Numeric Array
  2 comentarios
sam moor
sam moor el 17 de Mayo de 2016
i found out the maximum and minimum of the data using cellfun but now how do i find out absolute value of maximum and minimum of the data
Star Strider
Star Strider el 17 de Mayo de 2016
I am not certain what you mean by ‘absolute value of maximum and minimum of the data’. If you want the absolute value (the magnitude of complex numbers or the positive value of negative numbers) use the abs function.
If you want to know the difference between the maximum and minimum for each column, subtract the minimum from the maximum.
If you want to know the maximum of all the columns in each matrix, use the max function across the maximum numbers for that matrix. Do the same to get the minimum.
If none of these does what you want, please be more specific in describing your objective.

Iniciar sesión para comentar.

Más respuestas (2)

Andrei Bobrov
Andrei Bobrov el 17 de Mayo de 2016
Editada: Andrei Bobrov el 18 de Mayo de 2016
d = cat(3,Data{:});
datamin = squeeze(min(d))';
datamax = squeeze(max(d))';

Chad Greene
Chad Greene el 17 de Mayo de 2016
You can use cellfun where the func argument is simply @max or @min.

Categorías

Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by