How can I use splitapply() in matlab appdesigner?

조회 수: 6 (최근 30일)
Muazma Ali
Muazma Ali 2024년 2월 11일
댓글: Cris LaPierre 2024년 2월 12일
Hi! :)
I have matlab 2018 and really dont want to upgrade to newer versions right now.
What I was wondering was whether anybody could show with an easy example how I can apply splitapply() to group my data in a 2 dimensional plot. Earlier I have seen a post regarding this issue but I didnt understand how to do that..
I have a heterogenous table osmotic data and I want to group my 2 d plot with the text data showing the bestsalts which is a colum containing two salts each row, like CaCl2 NaCl , ZnBr2 KCl
  댓글 수: 1
Matt J
Matt J 2024년 2월 11일
If you provide some example data and the desired result, then perhaps.

댓글을 달려면 로그인하십시오.

답변 (1개)

Cris LaPierre
Cris LaPierre 2024년 2월 11일
편집: Cris LaPierre 2024년 2월 11일
You could use a differnt function that incorporates grouping, like gscatter.
load carsmall
gscatter(Displacement,Horsepower,Model_Year)
To specifically use splitapply, create an anonymous function with your plotting command. Something like this (I'm specivically trying to duplicate gscatter here).
figure
hold on
[G,ID] = findgroups(Model_Year);
splitapply(@(x)plot(x(:,1),x(:,2),'.','MarkerSize',20),[Displacement,Horsepower],G)
legend(string(ID),'Location','best')
  댓글 수: 1
Cris LaPierre
Cris LaPierre 2024년 2월 12일
Here's what the actual callback funciton might look like. I'm assuming the data to plot is a property of the app. See this page if you don't know what that means:
function ButtonPushed(app, event)
hold(app.UIAxes,"on")
[G,ID] = findgroups(app.Model_Year);
splitapply(@(x)plot(app.UIAxes,x(:,1),x(:,2),'.','MarkerSize',20),[app.Displacement,app.Horsepower],G);
legend(app.UIAxes,string(ID),'Location','best')
end

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Characters and Strings에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by