Bonjour à tous,
Je viens d'écrire le programme matlab suivant:
Code:% Load the file initial.txt nodes = xlsread('PerfectpanelStart.xlsx'); % Initialisation dimension = size(nodes,1); dimensionY = size(nodes,2); counter = 0; zeromat = zeros(dimension,dimensionY); pointer = 0; % Create the thickness of the panel thickness = input ('thickness of the panel: ') dt = thickness * 0.1; % Select number nodes to be displaced proportion = input('% of node needed to be displaced: ') count = (proportion/100) * dimension; round (count); % Creation of the nodes displacement while counter < count nodeselect = floor ((rand(1)+(rand(1)/1000)) * dimension); if nodeselect >= 1 if zeromat(nodeselect,3) == 0 value = nodes(nodeselect,3); randomnum = rand(1); % dist = rand(1) * dt; if randomnum >= 0.5 nodes(nodeselect,3) = value + dt; else nodes(nodeselect,3) = value - dt; end zeromat(nodeselect,3) = 1; counter = counter + 1; elseif zeromat(nodeselect,3) == 1 end end end % Write output file : results.txt xlswrite('PerfectpanelResults.xlsx',nodes)
Il marche parfaitement bien pour des petites matrices dans le fichier Excel, mais le problème est que je dois travailler sur une matrice 26 000 x 4 et lorsque je lance le programme avec une telle matrice j'ai le message d'erreur suivant:
??? Index exceeds matrix dimensions.
Error in ==> Imperfections at 30
if zeromat(nodeselect,3) == 0
Ce que je ne comprends pas c'est que si ça venait d'une erreur de programmation j'aurais le même problème avec une petite matrice, non ?
et si ce n'est pas une erreur de programmation alors c'est quoi ?
Est ce que quelqu'un a une petite idée ?
Merci d'avance
-----