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

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
testmatlab.xlsx