Ask matlab to compare variables per row between two column? Output a number "1" if the values are the same, output number "0" if the values are different.
1 view (last 30 days)
Show older comments
Myke Ziz
on 2 Jan 2020
Commented: Walter Roberson
on 10 Jan 2020
dataFolder = uigetdir();%select folder
filePattern = fullfile(dataFolder, '*.csv');
list = dir(filePattern);
Output = table();
for kk = 1:numel(list)
filename = list(kk).name;
data = readtable(fullfile(list(kk).folder, filename));
if numel(list)(:,1)==numel(list)(:,4)
disp('Correct')
value = 1;
elseif numel(list)(:,1)~=numel(list)(:,4)
disp('Incorrect')
value = 0;
end
end
For multiple .csv files in a folder that appear like this:
I want to ask matlab to compare variables per row between column 1 and 4.
Output a number "1" if the values are the same:
numel(list)(:,1)==numel(list)(:,4)
and "0" if they are not:
numel(list)(:,1)~=numel(list)(:,9)
For example row 2 column 1 = 6, column 4 = NaN.
It means I would like to output a column in wich in the row 2 I will have a 0.
Where am I wrong? Something with the syntax for sure but where?
2 Comments
awezmm
on 3 Jan 2020
If you compare two NaN's, do you want it to be equal and return 1 or non-equal and return 0?
Accepted Answer
Walter Roberson
on 3 Jan 2020
(Output{:,1} == Output{:,4}) | (isnan(Output{:,1}) & isnan(Output{:,4}))
The second part is needed to implement the "nans are equal" criteria.
17 Comments
Walter Roberson
on 5 Jan 2020
value = zeros(1,numfiles);
Though it might be necessary to take special care because of the vector being passed in. I will need to reread the appropriate documentation.
Walter Roberson
on 10 Jan 2020
https://www.mathworks.com/matlabcentral/answers/498717-extract-the-displayed-column-vectors-into-table-and-csv-file#comment_782904
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!