【问题标题】:Can someone tell me why these two codes give different answers谁能告诉我为什么这两个代码给出不同的答案
【发布时间】:2014-11-04 01:23:48
【问题描述】:

第一个代码:

kk8 = (kk1(:,:) .* (reshape((kk2(c,:,:)),12,6) ));
kk8(isnan(kk8))=0;

size(kk8) 返回的位置

ans =

    12     6


第二个代码:

size( kk8(isnan((kk1(:,:) .* (reshape((kk2(c,:,:)),12,6) ))))=0 );

我在这里做一些作弊,看看会发生什么——我以为会是一样的,但现在size(kk8) 回来了

ans =

    1     60

【问题讨论】:

    标签: matlab size reshape


    【解决方案1】:

    在您的第一个示例中,您正在执行以下操作(就数组大小而言):

    kk8=kk1;
    kk8(isnan(kk1))=0;
    

    在你的第二个例子中,你正在做类似的事情

    kk8(isnan(kk1))=0;
    

    我假设 kk8 之前没有定义。

    在您的第一个示例中,您创建数组kk8,大小与kk1 相同,然后修改一些元素。在第二个示例中,您将kk8 创建为与kk1NaN 的数量相对应的向量零。这就是为什么它们会有不同的大小,因为它们的创建方式不同。

    【讨论】:

    • 我应该怎么做才能把它放在一行?
    • @user2604811 保留为两行!我不确定你会如何在一行中做到这一点,也没有真正的理由。
    猜你喜欢
    • 2019-09-19
    • 2021-09-06
    • 1970-01-01
    • 2023-03-11
    • 2013-05-29
    • 2018-10-25
    • 2021-12-09
    • 1970-01-01
    • 2015-12-29
    相关资源
    最近更新 更多