小编Mac*_*nos的帖子

如何形象化单纯形?

假设我有n-simplex和网格.对于网格的每个点,我都会评估一个函数.但我真的不知道如何评估这次评估所收到的数据.

你能帮我解决三维或二维单形代码的问题,这对于解释是否相当好?当然,允许表示不太准确.

visualization simplex

5
推荐指数
1
解决办法
614
查看次数

如何根据订单编号字符串

我在matlab中有一个字符串的单元格数组.有些字符串可能相同.我想用字典方式对字符串进行编号.

例如,如果我有{'abc','aty','utf8','sport','utf8','abc'},在输出中我想得到数组[1, 2, 4, 3, 4, 1].

你能给我任何方法吗?

sorting string matlab cell-array

4
推荐指数
1
解决办法
70
查看次数

根据第一列中的标签将第二列中的元素相乘

我在Matlab工作.我有一个有两列的二维矩阵.让我们将第一列中的元素视为标签.标签可以重复.

如何将每个标签的第二列中的所有元素相乘?

例:

matrix = [1,3,3,1,5; 2,3,7,8,3]'
Run Code Online (Sandbox Code Playgroud)

我需要得到:

a = [1,3,5; 16,21,3]'
Run Code Online (Sandbox Code Playgroud)

你可以帮助我无需 for-while循环吗?

arrays matlab matrix

3
推荐指数
1
解决办法
65
查看次数

将一堆函数应用于R中矩阵的列

有一种方法可以将函数f应用于矩阵的每一列:

M <- matrix(seq(1,16), 4, 4)
apply(M, 2, mean)
#[1]  2.5  6.5 10.5 14.5
Run Code Online (Sandbox Code Playgroud)

但是,如果我想建立一个关于矩阵的描述性统计数据,我应该使用更多的indeces.例如,max, min, mean等等

但R不允许做这样的事情:

apply(M, 2, c(mean, max))
Run Code Online (Sandbox Code Playgroud)

得到这个输出:

#      [,1] [,2] [,3] [,4]
#mean   2.5  6.5 10.5 14.5
#max      4    8   12   16
Run Code Online (Sandbox Code Playgroud)

你能告诉我如何处理这个问题吗?

r matrix apply

3
推荐指数
1
解决办法
62
查看次数

如何在Matlab中改变循环条件?

我运行这段代码:

for i=1:length(matr)
Run Code Online (Sandbox Code Playgroud)

...哪里matr是方阵.在这个循环中大小的matr变化,但似乎循环继续运行,直到i不超过初始值length(matr)

如何保持length(matr)循环状态的新鲜感?

这是我的代码.

for i=1:length(matr1)
       for j=1:length(matr1) 
           if((i~=j)&&(ismember(i,ind3)==0)&&(ismember(j,ind3)==0))
               if (i>length(matr1))||(j>length(matr1))
                   continue
               end
               ind1 = find_tree(matr1,i);
               ind2 = find_tree(matr1,j);
               b = is_isomorphic(matr1(ind1,ind1),matr1(ind2,ind2),encode(ind1),encode(ind2));
               if b,
                   number = number + length(ind1);
                   matr1(ind2,:) = [];
                   matr1(:,ind2) = [];
                   ind3 = find(summ_rows==-1);
               end
           end
       end
    end
Run Code Online (Sandbox Code Playgroud)

我设法添加

`if (i>length(matr1))||(j>length(matr1))`, 
Run Code Online (Sandbox Code Playgroud)

...因为ij超出了矩阵的维度.

matlab loops matrix conditional-statements

2
推荐指数
1
解决办法
104
查看次数

通过给定值的分配来创建向量

假设我有一个向量a = (1,3,4).我想用范围内的整数来创建新的向量[1,length(a)].但是第 - i个数字应该出现a[i]次数.

对于a我想要的矢量:

(1,2,2,2,3,3,3,3)

你能解释一下如何在没有几个混乱的连接的情况下实现这个操作吗?

r vector concatenation

2
推荐指数
1
解决办法
34
查看次数

从R中的格式字符串中提取数字

假设我有一堆以下格式给出的字符串:#%d-%d-%d.

例如,

#50-69-1
#49-69-2
...
Run Code Online (Sandbox Code Playgroud)

如何在没有暴力逼近的情况下为每个字符串提取第一个数字?

对于上面的例子我想得到:

50
49
...
Run Code Online (Sandbox Code Playgroud)

string r

2
推荐指数
2
解决办法
144
查看次数

在Matlab中找到反转次数

在通过分而治之的方法查找数组中的反转次数的过程中我遇到了实现merge-step的问题:我们有两个排序的数组,任务是计算第一个数组的元素时的个案数大于第二个元素.

例如,如果是数组v1 = [1,2,4], v2 = [0,3,5],我们应该计算4次反转.

所以,我在Matlab中实现了合并步骤,但我坚持如何快速实现它的问题.

首先,我尝试过蛮力方法

tempArray = arrayfun(@(x) length(find(v2>x)), v1)
Run Code Online (Sandbox Code Playgroud)

它的工作速度和下一个片段一样慢

l = 1;
s = 0;
for ii = 1:n1 
    while(l <= n2 && p1(ii)>p2(l))
        l = l + 1;
    end
    s = s + l - 1;
end
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以让它更快?

编辑

谢谢你的答案和方法!我为进一步的工作找到了有趣的东西.

这是片段,它应该是我尝试过的最快的片段

n1 = length(vec1); n2 = length(vec2);

uniteOne = [vec1, vec2];

[~, d1] = sort(uniteOne);
[~, d2] = sort(d1); % Find ind-s IX such that B(IX) = A, where B = …
Run Code Online (Sandbox Code Playgroud)

arrays optimization performance matlab inversion

2
推荐指数
1
解决办法
260
查看次数

Python3中的唯一类实例

假设我有这样的类定义

class structure:
    def __init__(self, handle):
        self.handle = handle
Run Code Online (Sandbox Code Playgroud)

我如何使用numpy.uniquePython3的另一个工具来查找此类实例列表中的唯一元素?应该根据该'handle'领域的价值进行比较.

python numpy unique

0
推荐指数
1
解决办法
619
查看次数

调用类向量字段的大小()时出错

我坚持检查类中矢量大小的问题.这是我的代码:

class myclass {
public:
  std::vector<mystruct> v;
};

int main() {

    myclass * a, *b;
    std::cout << a->v.size() << '\n';    
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

此代码会出现分段错误.有人会解释这个片段中的错误是什么吗?我怎么能打败它?

c++ class vector

-1
推荐指数
1
解决办法
44
查看次数