【问题标题】:Set specific elements on a matrix to zero将矩阵上的特定元素设置为零
【发布时间】:2015-06-13 20:19:21
【问题描述】:

我想在 36x18x12000 矩阵中保留一些元素,并将其他所有元素设置为零。特别是,我对通过时间获取 36x18 地图中特定区域的值感兴趣。我尝试使用的代码如下:

coflux_SAm(1:26,1:3,:)=0;coflux_SAm(35:36,11:18,:)=0

我打算在这里做的是保留南美地区(地图中的 lon 27:34 ; lat 4:10)并删除其余的基本上。发现这条线和循环都没有,我感到非常恼火:

for i=1:26
    for j=1:3
        coflux_SAm(i,j,:)=0;
    end
end

for i=35:36
    for j=11:18
        coflux_SAm(i,j,:)=0;
    end
end

正在工作。他们似乎在矩阵中进行了随机修改,但我什至没有找到它的模式。

【问题讨论】:

  • 好吧,没关系...我显然很傻,担心代码而不是我真正想要的逻辑背后的逻辑。我将代码更改为:'coflux_SAm(1:26,:,:)=0;coflux_SAm(35:36,:,:)=0; coflux_SAm(:,1:3,:)=0;coflux_SAm(:,11:18,:)=0;'现在它可以工作了。在上一个中,我删除了经度和纬度之间的交集,而不是所有内容,而是我需要的内容……我很傻。无论如何,如果有人打扰看看,谢谢。干杯!
  • 如果这是您问题的答案,您应该将其放入下面的答案框中,然后单击绿色勾号接受该答案。这将结束您的问题。这就是 Stack Overflow 的工作方式,如 tour 中所述。

标签: matlab matrix


【解决方案1】:

抱歉,这里的答案延迟了,我刚刚看到我不得不关闭线程。我复制并粘贴,以便将其关闭。干杯

好吧,没关系...我显然很傻,担心代码而不是我真正想要的背后的逻辑。我将代码更改为:'coflux_SAm(1:26,:,:)=0;coflux_SAm(35:36,:,:)=0; coflux_SAm(:,1:3,:)=0;coflux_SAm(:,11:18,:)=0;'现在它可以工作了。在上一个中,我删除了经度和纬度之间的交集,而不是所有内容,而是我需要的内容……我很傻。无论如何,如果有人打扰看看,谢谢。干杯!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-19
    • 1970-01-01
    • 1970-01-01
    • 2014-08-23
    • 2017-05-21
    • 2021-07-08
    • 1970-01-01
    相关资源
    最近更新 更多