Azzera filtri
Azzera filtri

Why Matlab doesn't export the result?

2 visualizzazioni (ultimi 30 giorni)
I import an excel file into Matlab. Then I expect with the code I write in Matlab, it will export the result in column 3 in the original excel. But nothing appears in column 3 of the file sample2.xlsx. Could you help me?
clear all
clc
A=xlsread('Criteria.xlsx');
B=xlsread('sample2.xlsx');
n=0;
x=0;
for h=1:99
if B(h,2)>50
n=n+1;
x= x+B(h,3);
end
end
x=x/n;
for h=1:99
if B(h,2)>50
B(h,4)=x;
end
end
xlswrite('sample2.xlsx',B)

Risposta accettata

Image Analyst
Image Analyst il 5 Gen 2016
What is "A" for? You're not even using it.
And column 3 of B has NaNs in it, so x will be a NaN also, which means column 4 is all NaNs. It looks like x is supposed to be the mean of Col 3 of B for rows where B > 50. Is that true? If so, those two for loops can be vectorized:
% Don't read in A - it's not used.
% A=xlsread('Criteria.xlsx');
B=xlsread('sample2.xlsx');
% Determine which rows to average.
rowsToAverage = B(:,2)>50 & ~isnan(B(:,3));
% Get mean in Column 3
meanOfBigNumbers= mean(B(rowsToAverage, 3));
% Set col 4 = means
B(rowsToAverage, 4) = meanOfBigNumbers;
% Overwrite workbook with new B value.
xlswrite('sample2.xlsx',B)
The xlswrite should work.
  5 Commenti
Image Analyst
Image Analyst il 5 Gen 2016
Looks like you've found a solution in your parallel thread because you've accepted an answer there. I still claim you don't need all those for loops. But anyway, at least it's working.
Walter Roberson
Walter Roberson il 5 Gen 2016
Dung Le remarks "Thank you your enthusiastic support :)"

Accedi per commentare.

Più risposte (1)

Walter Roberson
Walter Roberson il 5 Gen 2016
Could you confirm that you want to take the mean of column 3 over the places that column 2 is > 50, and that you want to write copies of that mean to column 4 for those same rows? Like
mask = B(1:99,2) > 50;
x = mean(B(mask,3));
h(mask,4) = x;
  3 Commenti
Image Analyst
Image Analyst il 5 Gen 2016
The code in my answer (different than Walter's code in this Answer) does work - I actually tried it. There is stuff in all 4 columns. Where you originally had NaN's there will be a blank cell.

Accedi per commentare.

Tag

Non è stata ancora inserito alcun tag.

Community Treasure Hunt

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

Start Hunting!

Translated by