locating a value of a matrix from another input value

2 views (last 30 days)
Is there a way you can use a speciifc value i.e. nth value from a vector (i.e. the 24 in the 1x5 double below) to find what the value is for that value in a matrix (point 24 in the 1x101)?
I have a 1x5double --- [24,26,26,26,29]
I have a 1x5structure which holds 5 lots of 1x101double
Many thanks in advance,
Jake

Accepted Answer

Takumi
Takumi on 13 Jul 2020
ind = [24,26,26,26,29];
S(1).f1 = rand(1,101);
S(2).f1 = rand(1,101);
S(3).f1 = rand(1,101);
S(4).f1 = rand(1,101);
S(5).f1 = rand(1,101);
A = arrayfun(@(x) x.f1(ind),S,'UniformOutput',false);
  3 Comments
Takumi
Takumi on 13 Jul 2020
Ok. Using for loop ,most easiest.
ind = [24,26,26,26,29];
S(1).f1 = rand(1,101);
S(2).f1 = rand(1,101);
S(3).f1 = rand(1,101);
S(4).f1 = rand(1,101);
S(5).f1 = rand(1,101);
for i=1:length(ind)
A(i) = S(i).f1(ind(i));
end
Jake Bowd
Jake Bowd on 13 Jul 2020
Hi Takumi,
Thanks. With your assistance, I got the code working:
-------
ind = Results.Average_CFTot1_location;
for x=1:length(Results.Max_Pressure_Total);
S(x).f1 = Results.Max_Pressure_Total(x).Resampled;
end
for i=1:length(ind)
A(i) = S(i).f1(ind(i));
end
-------

Sign in to comment.

More Answers (0)

Products


Release

R2020a

Community Treasure Hunt

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

Start Hunting!