如果不在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表示如下: …
我是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)