set object property of a user-defined class

1 回表示 (過去 30 日間)
Guillaume
Guillaume 2014 年 9 月 3 日
コメント済み: Adam 2014 年 9 月 5 日
Hello,
I want to set the properties "nb_pixel_horiz" and "nb_pixel_verti" of an object "p" that has the user-defined class "Picture".
I wrote
classdef Picture
properties
nb_pixel_horiz;
nb_pixel_verti;
end
methods
end
end
And I want to write in the main command something like:
p = Picture;
set(p,'nb_pixel_horiz', 2000);
set(p,'nb_pixel_verti', 1000);
But it does not work. Could someone help me?
Thanks! Guillaume
  4 件のコメント
Guillaume
Guillaume 2014 年 9 月 5 日
@ Adam: Yes you're right. Actually I am not an expert at all in classes. I don't know when and how to use them properly. That's why sometimes I am making things complicated when I could make them easy...
Adam
Adam 2014 年 9 月 5 日
In case you have not yet come across it, the following document provides an excellent reference for helping to understand programming with classes in Matlab. I still refer back to it on many occasions:

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

採用された回答

Guillaume
Guillaume 2014 年 9 月 3 日
編集済み: Guillaume 2014 年 9 月 3 日
Hey, Another Guillaume!
You need to derive from hgsetget, so:
classdef Picture < hgsetget
properties
nb_pixel_horiz;
nb_pixel_verti;
end
end
  3 件のコメント
Guillaume
Guillaume 2014 年 9 月 3 日
It's another question entirely, you should have started a new question really.
One way of doing what you want, assuming all pictures have the same size:
I = get(p(1:10),'intensity_values');
I = reshape(cell2mat(I), size(I{1}, 1), size(I{1}, 2), []); %transform into 3d matrix
pixstd = std(I, 0, 3);
Guillaume
Guillaume 2014 年 9 月 5 日
OK thank you. Next time I will open a new question as you suggest.

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

その他の回答 (1 件)

Matt J
Matt J 2014 年 9 月 3 日
Unless you really need handle semantics, it would be enough to do
p.nb_pixel_horiz=2000
p.nb_pixel_verti=1000

Community Treasure Hunt

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

Start Hunting!

Translated by