how can I compute distances:
I have a code which was running in matlab 2016:
Nat=1000;
pos=(rand(3, Nat)-0.5);
kr=dist(pos)+eye(Nat);
In my new matlab version (Matlab 2019), it seems to require an additional toolbox?
yours
Robin

 Akzeptierte Antwort

Robin Kaiser
Robin Kaiser am 28 Jan. 2020

0 Stimmen

Thank you for your fast feedback. I tried and get the following reply:
'pdist' requires Statistics and Machine Learning Toolbox.
yours
Robin

1 Kommentar

kr = squeeze(sum((pos - permute(pos, [1 3 2])).^2,1)) + eye(NAT);

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (3)

Fangjun Jiang
Fangjun Jiang am 27 Jan. 2020

0 Stimmen

Run the code and then run "license inuse". Only MATLAB is needed.

2 Kommentare

Robin Kaiser
Robin Kaiser am 28 Jan. 2020
after "license inuse" I get
"matlab" as answer, but dist(pos) still does not work. Is this a backward incompatibilty?
Walter Roberson
Walter Roberson am 28 Jan. 2020
It is not a backward incompatibility. dist() was never part of basic MATLAB. You probably had some third-party dist() function.

Melden Sie sich an, um zu kommentieren.

Walter Roberson
Walter Roberson am 27 Jan. 2020

0 Stimmen

dist() is part of the Deep Learning Toolbox

2 Kommentare

Robin Kaiser
Robin Kaiser am 28 Jan. 2020
I see that
'dist' requires one of the following:
Deep Learning Toolbox
Navigation Toolbox
Robotics System Toolbox
Sensor Fusion and Tracking Toolbox
But I did not have those in my previous matlab version. So this seems to be a backward incompatibility?
No, it implies you used a third-party function before.
If you want to use basic MATLAB, then
kr = squareform(pdist(pos.')) + eye(Nat);

Melden Sie sich an, um zu kommentieren.

Robin Kaiser
Robin Kaiser am 28 Jan. 2020

0 Stimmen

Thank you: this works
yours
Robin

Kategorien

Mehr zu MATLAB finden Sie in Hilfe-Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by