Match two rows value by a column value

2 visualizaciones (últimos 30 días)
Cristian Martin
Cristian Martin el 1 de Jun. de 2022
Comentada: Cristian Martin el 1 de Jun. de 2022
Hi guys,
In a table I want to count all matching rows based of a value of a columns
If two rows have value '1' in column 34 and in column 9 have value 'Corn' set a count in an edit text
If two rows have value '2' in column 34 and in column 9 have value 'Corn' set another count in an edit text
and so on..
new_data=get(handles.uitable4,'Data');
index1= strcmp(new_data(:,34),'1', new_data(:,9),'Corn');
index2= strcmp(new_data(:,34),'2', new_data(:,9),'Corn');
count_total_corn = count(index1, index2);
set(handles.edit4,'string', count_total_corn)
index3= strcmp(new_data(:,34),'3', new_data(:,9),'Rice');
index4= strcmp(new_data(:,34),'4', new_data(:,9),'Rice');
count_total_rice = count(index3, index4);
set(handles.edit5,'string', count_total_rice)
Could you give me an ideea? The above doesn't work...thanks
  1 comentario
Jan
Jan el 1 de Jun. de 2022
"Doesn't work" is a lean description. Prefer to share the details of the problem, if you want others to solve it. Do you get an error message?

Iniciar sesión para comentar.

Respuesta aceptada

Jan
Jan el 1 de Jun. de 2022
Editada: Jan el 1 de Jun. de 2022
index1= strcmp(new_data(:,34),'1', new_data(:,9),'Corn');
This is gun-shot-programming. Please read the documentation of strcmp to find out, how this command is used. I guess you want:
index1= strcmp(new_data(:,34), '1') & strcpm(new_data(:,9), 'Corn');
But what type is new_data(:,34) ? Maybe you need {new_data(:,34)} ?
"count" sounds like it counts, but it does this for patterns in a string. Again: read count .
count_total_corn = sum(index1) + sum(index2);
% or
count_total_corn = nnz([index1, index2]);
  4 comentarios
Cristian Martin
Cristian Martin el 1 de Jun. de 2022
Editada: Cristian Martin el 1 de Jun. de 2022
Sorry, I just answered to your question: But what type is new_data(:,34)?
Both 9 an 34 are cell
this are results for disp 9 and 34: 'Corn' and [1]
i'm wrong?
Cristian Martin
Cristian Martin el 1 de Jun. de 2022
My output for column 34 is [1]. How can I transform this into '1' ?

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

Productos


Versión

R2015a

Community Treasure Hunt

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

Start Hunting!

Translated by