Bonjour à tous,
Voici mon problème : J'ai deux fichiers avec des temps et des températures. J'aimerais les regrouper et ne faire qu'un seul fichier. Cependant, les temps ne correspondent pas tout à fait. Du coup, je veux prendre la ligne de température du fichier 1 avec le temps le plus proche de celui du fichier 2. J'ai essayé de faire ce code, mais cela ne fonctionne pas. Les deux fichiers ont des tailles différentes. Je voudrais comme base le temps du fichier 2. Est-ce que la recherche d'indice va me donner l'indice du fichier 1 ou du fichier 2?
J'espère que c'est plus ou moins clair... Voici mon code. Merci beaucoup pour votre aide!
En lançant ce code, j'obtiens l'erreur suivante. Mais je ne vois pas pourquoi idx aurait plus d'une valeur, à moins qu'il y ait exactement la même différence de temps...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 file1 = dlmread('TPL91_Neue_Gr1.txt'); file2 = dlmread('TPL91_Neue_Gr2.txt'); nb1 = size(file1); nb2 = size(file2); time1 = file1(:,1); time2 = file2(:,1); TempData = zeros(nb1(1),nb1(2)+nb2(2)-1); idx = zeros(nb2(1),1); for i = 1 : nb2(1) idx(i) = find(min(abs(time2(i)-time1(:)))); TempData(i,1) = time2(i); TempData(i, 2:nb1(2)) = file1(idx(i), 2:nb1(2)); TempData(i, nb1(2)+1:nb1(2)+nb2(2)-1) = file2(i, 2:nb2(2)); end
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 In an assignment A(I) = B, the number of elements in B and I must be the same. Error in TPL91_Neue (line 19) idx(i) = find(min(abs(time2(i)-time1(:))));
Partager