locating a value of a matrix from another input value

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

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

Hi Takumi,
This will give me the 5 values for S(1).f1; However I am looking to use the first value in ind to be used in S(1).f1 and then the second value in ind to be used in S(2).f1 and so on.
Any suggestions on how to do that?
Best wishes,
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
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)

Categories

Find more on Linear Algebra in Help Center and File Exchange

Products

Release

R2020a

Asked:

on 13 Jul 2020

Commented:

on 13 Jul 2020

Community Treasure Hunt

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

Start Hunting!