Hello,
I have 2 columns in Excel that I would need to calculate in Matlab. In the first column I have a formula: =IF(J2=1;IF(ISNUMBER(K1);K1+1;1);0) In the second column: =IF(AND(J2=1;J3<>1);K2;0) After column J, I have it calculated in matlab. Thank you very much for the advice.
I created column J in matlab with the command: T.Platoon=double(T.CasRozdiel<=4). I have added a matlab file in the attachment.
How it looks in excel.

4 Kommentare

Rik
Rik am 23 Aug. 2022
I think you need this structure in Matlab (with your array A and row n):
if A(n,1)==1 && A(n,+1,1)~=1
A(n,3)=A(n,2);
else
A(n,3)=0;
end
Is this what you mean?
Zuzana Pániková
Zuzana Pániková am 23 Aug. 2022
Bearbeitet: Walter Roberson am 23 Aug. 2022
I try:
T.Platoon1=zeros(12645,1)
if Platoon(n,1)==1 && Platoon(n,+1,1)~=1
Platoon(n,3)=Platoon(n,2 );
else
Platoon(n,3)=0 ;
end
I'm not sure what to put in for ´n´ or if I should have entered it that way at all.
Thank you for help.
Image Analyst
Image Analyst am 24 Aug. 2022
I'm not sure what you want. Why not simply read your existing Excel workbook in to MATLAB with readtable? The computed values (the numbers), not the formulas, are what should be read in. And since you did the computations in Excel, then numbers should be right.
Zuzana Pániková
Zuzana Pániková am 24 Aug. 2022
I have Excel to check whether what Matlab calculates fits with Excel. Excel can no longer calculate the new data that I have to calculate. I have a lot of data for Excel.

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Hornett
Hornett am 4 Sep. 2023

0 Stimmen

I understood that you want to calculate the values of two other columns based on some conditions in MATLAB.
You can try the following code
This code will iterate over each cell value of platoon and calculate the platoonTemp based on condition if(J2=1;If(isnumber(K1);K1+1;1);0) and similarly platoonTemp2 is calculated from values of platoonTemp based on condition if(and(J2=1;J3<>1);K2;0).
n = size(T,1)
platoonTemp = zeros(n,1);
platoonTemp2 = zeros(n,1);
for i = 1:n
if T.Platoon(i)==1
if i~=1
platoonTemp(i)=platoonTemp(i-1)+1;
else
platoonTemp(i)=1;
end
end
if i~=n && T.Platoon(i)==1 && T.Platoon(i+1)~=1
platoonTemp2(i)=platoonTemp(i)
end
end
T.Temp1 = platoonTemp
T.Temp2 = platoonTemp2
I hope it answered your query

Weitere Antworten (0)

Kategorien

Produkte

Version

R2022a

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by