我使用Matlab的mdscale函数制作了一个多维缩放图。根据说明 here,这些点可以用gname函数标记。但是,他们在教程中使用的虚拟数据是我在单元格中构建的,我正在使用结构数组。
我有一个带有2个字段的1x14结构数组:扬声器和名称,我这样构建:
speaker(1).data = importdata([path,'file1']);
speaker(1).name = 'speaker 1';
speaker(2).data = importdata([path,'file2']);
speaker(2).name = 'speaker 2';
然后我从扬声器(i).data计算了距离矩阵“d”并执行了多维缩放:
[Y,stress] = mdscale(d,6,'criterion','metricstress');
plot(Y(:,1),Y(:,2),'o','LineWidth',2);
xlabel('Distance')
ylabel('Distance')
gname(speaker().name(distances))
最后一行“gname ...”是错误的,它给出了错误“多个结构元素的字段引用,后面跟着更多的引用块是一个错误。” 当我有一个结构而不是一个单元格时,我不知道如何在我的图上显示名称。有人可以帮忙吗?
编辑:
我设法将speaker()。name转换为单元格数组“names”并调用
gname(names)
现在正在运作!感谢您提供的有用评论。