- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
对于模棱两可的标题,我深表歉意,但我不完全确定如何表达这个标题。所以请耐心等待。
我有一个数据矩阵。每列和每行代表一个特定的向量(第1列=第1行,第2列=第2行,等等),每个单元格的值是对应向量之间的余弦相似度。所以矩阵中的每个值都是余弦。
我想用它做几件事。首先,我想创建一个显示其上所有矢量的图形。我知道每个向量之间夹角的余弦值,也知道每个向量的大小,但这是我仅有的信息——有没有我可以实现的算法,它会遍历所有不同的成对角度并显示它以图形方式?也就是说,我不知道所有向量之间的相互关系,而且有太多数据点无法手动完成(例如,如果我只有三个向量,并且它们之间的角度均为 45、12 , 而 72 度是微不足道的)。那么我该怎么做呢?我什至不知道我需要什么样的数学函数才能做到这一点。 (我有 83 个向量,所以有数千个余弦值)。所以基本上这个图(它可以是二维的也可以是多维的,老实说我想两者都做)会显示所有的向量以及它们在空间中如何相互关联(所以我可以比较角度和相对大小) .
我想做的另一件事更简单,但我很难弄明白。我可以将余弦值转换为笛卡尔坐标并将它们显示在散点图中。有没有办法将散点图的每个点连接到图中的 (0,0)?
最后,在试图弄清楚如何自己完成上述某些操作时,我遇到了一些不一致的地方。我计算了 83 个向量中每个向量的平均角度和笛卡尔坐标。这个的数学很简单,我已经检查并仔细检查了它。然而,当我尝试绘制它时,不同的绘制方法给我带来了截然不同的东西。因此,如果我将笛卡尔坐标绘制为散点图,我会得到:
如果我在罗盘图中绘制平均角度,我会得到:
如果我使用颤抖图,我会得到类似这样的结果(我通过将原点向上和向右移动一点来改变它,以便您可以更好地看到它):
我做错了什么,还是我误解了我正在使用的绘图功能?因为这些结果看起来都很不一致。罗盘图上的平均角度都小于 30 度左右,但在箭袋图上,有些似乎超过 90 度,而在散点图上,它们也延伸到 30 度以上。这是怎么回事?
(这是我的代码:)
cosine = load('LSA.txt');
[rows,columns]=size(cosine);
p = cosine.^2;
pp = bsxfun(@minus, 1, p);
sine = sqrt(pp);
tangent = sine./cosine;
Xx = zeros(rows,1);
Yy = zeros(rows,1);
for i = 1:columns
x = cosine(:,i);
y = sine(:,i);
Xx(i,1) = sum(x) * (1/columns);
Yy(i,1) = sum(y) * (1/columns);
end
scatter(Xx,Yy);
Rr = zeros(rows,1);
Uu = zeros(rows,1);
for j = 1:rows
Rr(j,1) = sqrt(Xx(j,1).^2 + Yy(j,1).^2);
Uu(j,1) = atan2(Xx(j,1),Yy(j,2));
end
%COMPASS PLOT
[theta,rho] = pol2cart(Uu,1);
compass(theta,rho);
%QUIVER PLOT
r = 7;
sx = ones(size(cosine))*2; sy = ones(size(cosine))*2;
pu = r * cosine;
pv = r * sine;
h = quiver(sx,sy,pu,pv);
set(gca, 'XLim', [1 10], 'YLim', [1 10]);
最佳答案
你完全可以解决这个问题。 dot product计算余弦。这意味着您的矩阵实际上是 M=V'*V
这应该可以通过特征值解决。你说你也有长度。
您唯一的问题 - 作为您的原始矩阵,向量将是 83 维的。不容易绘制 2 或 3 维。我认为您仅使用平均角度就过于简化了。有一些技术称为降维 - 这里是 toolbox .我建议 sammon projection在 1-cosine
上(因为这将是单位球上点的距离)来计算此类绘图的向量。
关于MATLAB 向量、角度、绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12182512/
在 Matlab 中,您可以选择创建新的“示例”脚本文件以及脚本、函数、类等。创建它们时,它们会获得一个脚本图标。 它们与其他标准脚本文件的处理方式有何不同? 是否有关于这些示例脚本类型的预期用途的文
我正在运行一个不是我自己编写的大 m 文件,它依赖于某些子函数。我想知道是否在所有嵌套函数的任何地方都使用了特定函数(在我的例子中是函数 eig.m(计算特征值))。有没有快速的方法来做到这一点? 亲
Matlab中有一个函数叫 copulafit .我怎样才能看到这个函数背后的代码?许多 Python 的 numpy 和 scipy 函数在 Github 上很容易开源,但由于某种原因我在 Gith
我定义了一个抽象基类measurementHandler < handle它定义了所有继承类的接口(interface)。这个类的两个子类是a < measurementHandler和 b < me
假设有一个矩阵 A = 1 3 2 4 4 2 5 8 6 1 4 9 例如,我有一个 Vector 包含该矩阵每一列的“类”
我有一个在后台运行的 Matlab 脚本。随着计算的进行,它会不断弹出进度栏窗口。这很烦人。 问题是我没有自己写 Matlab 脚本,这是一段很长很复杂的代码,我不想搞砸。那么如何在不修改 Matla
有没有办法从一个 matlab 程序中检测计算机上正在运行多少个 matlab 进程? 我想要恰好有 n 个 matlab 进程在运行。如果我的数量太少,我想创建它们,如果数量太多,我想杀死一些。您当
我正在测试我们在 Matlab 中开发的一个独立应用程序,当时我注意到它的内存使用量(根据 Windows 任务管理器)达到了 16gb 以上的数倍峰值。我决定在编译版本后面的脚本上使用 profil
我面临着一个相当棘手的问题。在 Matlab 中,命令 S = char(1044) 将俄语字母 д 放入变量 S。但是 disp(S) 返回空白符号,尽管内容实际上是正确的: >> S = char
我在这行 MATLAB 代码中遇到内存不足错误: result = (A(1:xmax,1:ymax,1:zmax) .* B(2:xmax+1,2:ymax+1,2:zmax+1) +
我正在寻找一种在 MATLAB 中比较有限顺序数据与非确定性顺序的方法。基本上,我想要的是一个数组,但不对包含的元素强加顺序。如果我有对象 a = [x y z]; 和 b = [x z y]; 我希
我有一个由 1 和 0 组成的二维矩阵。 mat = [0 0 0 0 1 1 1 0 0 1 1 1 1 1 0 0 1 0 0 0 1 0 1 1 0 0 1]; 我需
我可以在 Matlab 中用一组 x,y 点绘制回归线。但是,如果我有一组点(如下图),假设我有四组点,我想为它们绘制四条回归线……我该怎么做?所有的点都保存在 x,y 中。没有办法将它们分开并将它们
我正在尝试使用以下代码在 MATLAB 中绘制圆锥体。但是,当 MATLAB 生成绘图时,曲面中有一个间隙,如下图所示。谁能建议关闭它的方法? clearvars; close all; clc; [
我有一个 map称为 res_Map,包含一组不同大小的数组。我想找到用于存储 res_Map 的总内存。 正如您在下面看到的,看起来 res_Map 几乎不占用内存,而 res_Map 中的各个元素
有没有办法在 MATLAB 中组合 2 个向量,这样: mat = zeros(length(C),length(S)); for j=1:length(C) mat(j,:)=C(j)*S;
已结束。此问题不符合 Stack Overflow guidelines 。它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答它。 关闭 5 年前
我正在尝试将MatLab中的t copula适配到我的数据,并且我的功能是: u = ksdensity(range_1, range_1,'function','cdf'); v = ksdens
大家好,我目前正在尝试使用论文“多尺度形态学图像简化”中的 SMMT 运算符 Dorini .由于没有订阅无法访问该页面,因此我将相关详细信息发布在这里: 请注意,我将相关文章的部分内容作为图片发布。
我在MATLAB中编写代码,需要使用一个名为modwt的函数,该函数同时存在于两个我同时使用的工具箱(Wavelet和WMTSA)中。问题在于,一个版本仅返回一个输出,而另一个版本则返回三个输出。我应
我是一名优秀的程序员,十分优秀!