I have two files. One file has some values like that:
1
1
1
1
1
1
2
2
2
2
2
2
2
3
3
3
3
3
3
Another file has values like that
1 10
2 20
3 30
I have to assign values of 1, 2 and 3 from file 2 to file 1. In file 1 if 1 value is 6 then six 10 values will assign. Like that I have 800 values. If there is any shortcut for that.

 Réponse acceptée

Using the accumarray function tthis can be done in one line —
File_1 = [1
1
1
1
1
1
2
2
2
2
2
2
2
3
3
3
3
3
3];
File_2 = [1 10
2 20
3 30];
Out = accumarray(File_1, File_1, [], @(x){File_2(x,:)})
Out = 3x1 cell array
{6x2 double} {7x2 double} {6x2 double}
Result = cell2mat(Out)
Result = 19x2
1 10 1 10 1 10 1 10 1 10 1 10 2 20 2 20 2 20 2 20
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
disp(Result)
1 10 1 10 1 10 1 10 1 10 1 10 2 20 2 20 2 20 2 20 2 20 2 20 2 20 3 30 3 30 3 30 3 30 3 30 3 30
Out{1}
ans = 6x2
1 10 1 10 1 10 1 10 1 10 1 10
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
Out{2}
ans = 7x2
2 20 2 20 2 20 2 20 2 20 2 20 2 20
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
Out{3}
ans = 6x2
3 30 3 30 3 30 3 30 3 30 3 30
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
.

Plus de réponses (0)

Catégories

En savoir plus sur Graph and Network Algorithms dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by