Borrar filtros
Borrar filtros

Find corresponding values in different arrays

1 visualización (últimos 30 días)
CheshireM
CheshireM el 29 de Sept. de 2021
Comentada: CheshireM el 1 de Oct. de 2021
I have T-array, double, 4x1000.
Example of how it looks.
Also I have a cell array Ready, 4x500.
Example, how it looks.
Each cell is a double array, similar structure.
Example of Ready{1,2}.
My goal is to find correspondence values in both T and Ready.
Data in T(1,:) corresponds to the 1st row in Ready, T(2,:) corresponds to 2nd row of Ready, etc.
The 5th row in every cell (6,7,8,9 in the example) corresponds to the column # in T.
How do I fill out the sixth row in Ready with corresponding numbers from T? For example, Ready {1,2} means that we need to look at the values in the 1st row in T. And corresponding values in T will be 10, 12, 14, 16, which I want to write dowin in sixth row in Ready.
Could you please help me with this?
  4 comentarios
CheshireM
CheshireM el 30 de Sept. de 2021
@Image Analyst Do you have advice with what I should start with?
CheshireM
CheshireM el 30 de Sept. de 2021
@Kevin Holly Maybe you will have an idea or advice. Thank you!

Iniciar sesión para comentar.

Respuesta aceptada

Kevin Holly
Kevin Holly el 30 de Sept. de 2021
Editada: Kevin Holly el 30 de Sept. de 2021
To be clear, you want to replace the sixth row of read{1,2} with the first row of T?
If so, here it is for the specific example:
Ready{1,2}(6,:) = T(1,1:size(Ready{1,2},2));
Now, let's do if for every cell.
for i = 1:size(Ready,1)
for j = 1:size(Ready,2)
Ready{i,j}(6,:) = T(i,1:size(Ready{i,j},2));
end
end
  4 comentarios
Kevin Holly
Kevin Holly el 30 de Sept. de 2021
Editada: Kevin Holly el 30 de Sept. de 2021
ah, I got it now. The Ready{2,100} example helped a lot. Here you are:
for i = 1:size(Ready,1)
for ii = 1:size(Ready,2)
if ~isempty(Ready{i,ii})
Tcolumns = Ready{i,ii}(5,:); %Get columns values that will be used
index = 1:length(Tcolumns); %Get index of previous array because we will remove the ones corresponding to NaNs
index = index(~isnan(Tcolumns)); %Get rid of index values where Tcolumns = NaN
Tcolumns = Tcolumns(~isnan(Tcolumns)); %Get rid of NaNs in Tcolumns
Ready{i,ii}(6,index) = T(i,Tcolumns); %Fill in row 6 of Ready
end
end
end
CheshireM
CheshireM el 1 de Oct. de 2021
It works perfectly! Thank you! I also learnt a lot about arrays from your answer!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Introduction to Installation and Licensing en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by