Get clim values from colormap and adjust them in real time

34 ビュー (過去 30 日間)
Pelajar UM
Pelajar UM 2022 年 3 月 11 日
コメント済み: Pelajar UM 2022 年 3 月 11 日
I am trying to get the cmin and cmax values from a colormap, output them to editfields and let the user change them to update the plot in real time.
s = trisurf(F,P(:,1),P(:,2),P(:,3), Thickness2, 'Parent', app.UIAxes2_5);
c = colorbar(app.UIAxes2_5);
d = colormap(app.UIAxes2_5, jet);
d.clim([cmin cmax]); %Error: unrecognized function or variable 'cmin'
app.MinEditField.Enable = 'on';
app.MinEditField.Value = cmin;
app.MaxEditField.Enable = 'on';
app.MaxEditField.Value = cmax;
I also want the faceAlpha to be 0 for values above cmax and below cmin. But before I reach there, I get an error.

採用された回答

Sugar Daddy
Sugar Daddy 2022 年 3 月 11 日
boyaa, let me show you how to do that in a simple matlab figure. then figure it out yourself, how to do it for uiaxes
ax = gca;
mesh(ax,rand(100,100));
colormap(ax,'jet')
[cmin cmax] = deal(ax.CLim);
Now you have current cmin and cmax value.
change their value in Clim
ax.CLim = [0.1 1]
  1 件のコメント
Pelajar UM
Pelajar UM 2022 年 3 月 11 日
Thanks. This was helpful.
Two problems here:
  1. "deal" doesn't work. cmin and cmax give the same result (min and max together in two columns).
  2. gca doesn't seem to work in app designer
This one did the job:
x = app.UIAxes2_5.CLim;
cmin = x(:,1);
cmax= x(:,2);

サインインしてコメントする。

その他の回答 (1 件)

Simon Chan
Simon Chan 2022 年 3 月 11 日
Use clim(app.UIAxes2_5,[cmin cmax])
  1 件のコメント
Pelajar UM
Pelajar UM 2022 年 3 月 11 日
Thanks but getting the same error.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeRed についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by