在matlab中从向量的每个元素中减去其他元素?
例如,我有一个列向量 一, 0 三, 二, 在每一行,我想减去上面的数字,比如 第1行:空 第2行:0-1=-1 第3行:3-0=3和3-1=2。。等等,以便得到这样的东西 空的 -一, 3.2 -1 2 1 有没有人能在不使用for循环的情况下指导我使用一个高效的MATLAB代码,因为我的原始数据中的行数太长了在matlab中从向量的每个元素中减去其他元素?,matlab,Matlab,例如,我有一个列向量 一, 0 三, 二, 在每一行,我想减去上面的数字,比如 第1行:空 第2行:0-1=-1 第3行:3-0=3和3-1=2。。等等,以便得到这样的东西 空的 -一, 3.2 -1 2 1 有没有人能在不使用for循环的情况下指导我使用一个高效的MATLAB代码,因为我的原始数据中的行数太长了 提前感谢。您可以按照以下方式做一些事情: V = [1;0;3;2]; tril(bsxfun(@minus,V,V'),-1); 这给了我以下信息: ans = 0 0
提前感谢。您可以按照以下方式做一些事情:
V = [1;0;3;2];
tril(bsxfun(@minus,V,V'),-1);
这给了我以下信息:
ans =
0 0 0 0
-1 0 0 0
2 3 0 0
1 2 -1 0
它的主要缺点是,如果V很长,它将占用大量内存,但我想这将是一个问题。通过使V稀疏,可以潜在地减少内存使用