j'ai un petit soucis à manipuler Matlab honnêtement, j'ai un fichier excel énorme mais je dois le traiter avec Matlab pour extraire juste les lignes où il y a des données (par plages) et chaque plage prend un index donc le traitement se fait selon la première colonne du fichier qui s'appelle MOS , mon fichier contient trois colonnes et n lignes, mon code ci-dessous expliquera mieux ce que je veux faire.
mon soucis c'est même en entrant dans la boucle for il n'arrive toujours pas à lire les lignes nécessaires ni à les affichées correctement il m'affiche la totalité des lignes avec des '0'aussi je doit mettre le résultat de chaque colonne MOS,RXLEV,RXQ dans une matrice de 4 colonnes (MOS,RXLEV,RXQ,index) et bien sure de n lignes et j'arrive toujours pas à l'afficher convenablement.
merci d'avance.
scripttab: c'est le script générer du fichier testmatlab.xlsx
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
19
20
21
22
23
24
25
26
27 %% Import data from spreadsheet % Script for importing data from the following spreadsheet: % % Workbook: C:\Users\Iceprincess-cherif\Desktop\testmatlab.xlsx % Worksheet: testmatlab % % To extend the code for use with different selected data or a different % spreadsheet, generate a function instead of a script. % Auto-generated by MATLAB on 2015/04/22 17:54:43 %% Import the data [~, ~, raw] = xlsread('C:\Users\Iceprincess-cherif\Desktop\testmatlab.xlsx','test matlab'); raw(cellfun(@(x) ~isempty(x) && isnumeric(x) && isnan(x),raw)) = {''}; cellVectors = raw(:,[1,3]); raw = raw(:,2); %% Create output variable data = reshape([raw{:}],size(raw)); %% Allocate imported array to column variable names MOS = cellVectors(:,1); RXLEV = data(:,1); RXQ = cellVectors(:,2); %% Clear temporary variables clearvars data raw cellVectors;
dataext: le code d'extraction et de manipulation des données
testmatlab.xlsx
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
19
20
21
22
23
24 RXLEV=zeros(78,1); RXQ=zeros(78,1); MOS=zeros(78,1); %[n,m]=size(MOS); str=MOS(i,1); index=1; i=1; for i=2:78 if strcmp(str,'')==0 VMOS=double(MOS); VRXLEV=double(RXLEV); VRXQ=double(RXQ); data=[]; data(:,1)=MOS; data(:,2)=RXLEV; data(:,3)=RXQ; data(:,4)=index; else index=index+1; end end
Partager