change numbering inside cell

1 Ansicht (letzte 30 Tage)
NA
NA am 2 Okt. 2019
Beantwortet: Akira Agata am 2 Okt. 2019
I have
B=[1,1;2,2;3,40;4,10;5,15;6,19;7,22];
c={[1,10,15],[15,19,22],[1,2,40]};
Matrix B shows that 4 is correspond to10 or 7 correspond to 22 or 3 correspond to 40 .
So I want to change c according to second column of B
result should be
c_new={[1,4,5],[5,6,7],[1,2,3]};

Akzeptierte Antwort

Akira Agata
Akira Agata am 2 Okt. 2019
Solution 1:
c_new = cell(size(c));
for kk = 1:numel(c)
c_new{kk} = interp1(B(:,2),B(:,1),c{kk});
end
Solution 2:
% "Solution 1" in 1 line
c_new = cellfun(@(x) interp1(B(:,2),B(:,1),x),c,'UniformOutput',false);

Weitere Antworten (0)

Kategorien

Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by