小编los*_*oss的帖子

用数组值替换特定的矩阵位置,而不在MATLAB中使用for循环

如果不在MATLAB中使用for循环,我怎么能知道如何替换特定矩阵位置的值?我初始化矩阵a,我想在每个指定的行和列上替换它的值no.这必须在numfor循环中进行一段时间.的num,因为我想在更新的原代码值循环是在这里非常重要的.

真正的代码更复杂,我正在简化这个问题的代码.

我的代码如下:

a = zeros(2,10,15);



for num = 1:10

    b = [2 2 1 1 2 2 2 1 2 2 2 2 1 2 2]; 
    c = [8.0268 5.5218 2.9893 5.7105 7.5969 7.5825 7.0740 4.6471 ...
    6.3481 14.7424 13.5594 10.6562 7.3160 -4.4648 30.6280];

    d = [1 1 1 2 1 1 1 1 1 1 3 1 6 1 1];

    for no = 1:15
        a(b(no),d(no),no) = c(1,no,:)
    end

end
Run Code Online (Sandbox Code Playgroud)

示例输出13表示如下: …

matlab matrix

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

如何在Python列表中间求和所有相邻的非零值

我是Python的初学者。我需要通过汇总列表中的相邻非零值来解决问题。

说,我有清单叫

a = [2, 3, 0, 0, 1, 0, 3, 3, 1, 0, 0]. 
Run Code Online (Sandbox Code Playgroud)

在中,将有多个元素不为零的实例。例如,2和3正在邻居中,所以我想将它们加起来,得到5。

然后,还有另一个相邻的元素分别是3、3和1。这是我面临的问题,因为我想将其加总为7。

但是在我尝试的代码中,它仍然打印出4,这是a [7]和a [8]的总和。有什么办法可以避免这种情况吗?

c =[]
for i in range(1, len(a)): 
    if a[i-1] != 0:
        if a[i] != 0:
           tot = a[i] + a[i-1]
           c.append(tot)
           if a[i+1] != 0:
               tot = tot + a[i+1]
               c.append(tot)
    else:
        tot = 0;
        continue
Run Code Online (Sandbox Code Playgroud)

python list

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

标签 统计

list ×1

matlab ×1

matrix ×1

python ×1