I separate input data (in file panel.xlsx) into groups based on 4 conditions (in file criteria.xlsx), namely:
  1. Province (64 values)
  2. Number of employees (3 ranges): 2-10; 11-49; 50-10000
  3. Industry ID (89 values)
  4. Year (2 ranges): 2005-2007; 2008-2010
Then i want to calculate mean for each group and assign this mean to every observation in each group. Above is my code, could you please point out what's wrong in the code and fix it. Thank you very much! And i already attach two files used for calculation.
clear all
clc
A=xlsread('criteria.xlsx');
B=xlsread('panel.xlsx');
for i=1:89
for j=1:64
for k=1:3
for h=1:2
rowsToAverage = (B(:,5) == A(i,1)) && (B(:,4) == A(j,2)) && (A(k,4) > B(:,2) > A(k,3)) && (A(h,5) < B(:,1) < A(h,6)) && ~isnan(B(:,3));
meanOfBigNumbers= mean(B(rowsToAverage, 3));
B(rowsToAverage, 6) = meanOfBigNumbers;
end
end
end
end
xlswrite('panel.xlsx',B)

3 commentaires

Guillaume
Guillaume le 5 Jan 2016
Can you tell us what problem you have with your code? An error? Incorrect result?
You haven't attached any file.
Dung Le
Dung Le le 5 Jan 2016
Modifié(e) : Walter Roberson le 5 Jan 2016
I'm sorry, I have just attached two related files. Matlab reports error in the line:
rowsToAverage = (B(:,5) == A(i,1)) && (B(:,4) == A(j,2)) && (A(k,4) > B(:,2) > A(k,3)) && (A(h,5) < B(:,1) < A(h,6)) && ~isnan(B(:,3));
I'm don't know how to foxed this code!
Stephen23
Stephen23 le 5 Jan 2016
Modifié(e) : Stephen23 le 5 Jan 2016
Yes, but what is the error message? We cannot read your mind or your computer screen, so you have to tell us what the error message is.

Connectez-vous pour commenter.

 Réponse acceptée

Walter Roberson
Walter Roberson le 5 Jan 2016

0 votes

(B(:,5) == A(i,1)) is a vector calculation. You cannot combine vector values with other values using && like you do. You will need to switch to & instead of &&

3 commentaires

Dung Le
Dung Le le 5 Jan 2016
Thank you so much! My problem has been solved! :)
Walter Roberson
Walter Roberson le 5 Jan 2016
It would have been faster if you had included the actual error message, we could have explained hours ago...
Image Analyst
Image Analyst le 5 Jan 2016
Or if he had used my code in his duplicate question instead of unvectorizing the operation.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur File Operations dans Centre d'aide et File Exchange

Tags

Aucun tag saisi pour le moment.

Community Treasure Hunt

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

Start Hunting!

Translated by