首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建彩色地图蓝色比例尺

创建彩色地图蓝色比例尺
EN

Stack Overflow用户
提问于 2014-12-03 16:12:30
回答 1查看 462关注 0票数 1

你好,我有一个矩阵

代码语言:javascript
复制
A=[
1 1 1;
1 1 2;
1 1 3;
1 2 1;
1 2 2;
1 2 3;
2 1 1;
2 1 2;
2 1 3;
2 2 1;
2 2 2;
2 2 3]

包含向量V1 = [1 2], V2 = [1 2], V3 =[1 2 3]的元素的笛卡尔积,特别是矩阵A的每一行是V1 V2 V3元素的组合。

现在,我想创建一个蓝色比例的彩色地图,其中非常浅蓝对应于第1行[1 1 1],非常深蓝色对应于第12行[2 2 3]

我的问题:

1)如何对中间行进行智能排序,如中间行采用中间蓝调?(一排排的总和?)

2)如何创建这样的蓝色地图?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-03 17:06:46

看看这对你有用吗-

代码语言:javascript
复制
[sorted_sumcols,idx] = sort(sum(A,2)) %// sum over columns and sort based on the sum
Aout = A(idx,:) %// Aout holds the re-ordered rows of A

产出-

代码语言:javascript
复制
Aout =
     1     1     1
     1     1     2
     1     2     1
     2     1     1
     1     1     3
     1     2     2
     2     1     2
     2     2     1
     1     2     3
     2     1     3
     2     2     2
     2     2     3

为了进行验证,您可以查看

代码语言:javascript
复制
sorted_sumcols =
     3
     4
     4
     4
     5
     5
     5
     5
     6
     6
     6
     7

因此,[1 1 2]属于同一组[2 1 1],因为它们的两个sorted_sumcols值都是行号244

编辑

这部分代码扩展了先前的代码,以保持同一组元素的相同强度(列-3)-

代码语言:javascript
复制
[~,~,ID] = unique(sorted_sumcols) %// IDs for each group
meanvals = accumarray(ID,Aout(:,3),[],@mean) %// mean values for each group
Aout(:,3) = meanvals(ID) %// replicate the mean values to each element
out = Aout./max(Aout(:)) %// finally divide by max of all elements to keep 
                             %//it in [0 1] as needed for custom colormaps

产出-

代码语言:javascript
复制
>> Aout
Aout =
                         1                         1                         1
                         1                         1          1.33333333333333
                         1                         2          1.33333333333333
                         2                         1          1.33333333333333
                         1                         1                         2
                         1                         2                         2
                         2                         1                         2
                         2                         2                         2
                         1                         2          2.66666666666667
                         2                         1          2.66666666666667
                         2                         2          2.66666666666667
                         2                         2                         3

>> out
out =
         0.333333333333333         0.333333333333333         0.333333333333333
         0.333333333333333         0.333333333333333         0.444444444444444
         0.333333333333333         0.666666666666667         0.444444444444444
         0.666666666666667         0.333333333333333         0.444444444444444
         0.333333333333333         0.333333333333333         0.666666666666667
         0.333333333333333         0.666666666666667         0.666666666666667
         0.666666666666667         0.333333333333333         0.666666666666667
         0.666666666666667         0.666666666666667         0.666666666666667
         0.333333333333333         0.666666666666667         0.888888888888889
         0.666666666666667         0.333333333333333         0.888888888888889
         0.666666666666667         0.666666666666667         0.888888888888889
         0.666666666666667         0.666666666666667                         1
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27276453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档