24小时热门版块排行榜    

查看: 1168  |  回复: 10
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

l1376777571

新虫 (初入文坛)

[求助] Matlab基础问题求助 已有2人参与

求教各位大神,一个数减一个向量得到一个向量,那么如何让一个矩阵的每一个数都减去这个向量呢?除了for循环
请教各位朋友

发自小木虫Android客户端
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

细节
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhangbei_607

新虫 (正式写手)

让这个矩阵y减去这个数乘以全一矩阵,matlab一个命令搞定

发自小木虫Android客户端
8楼2017-02-02 22:19:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 11 个回答

godzilla

金虫 (小有名气)

不清楚你想达到什么效果,建议举例说明。

发自小木虫IOS客户端
2楼2016-11-19 11:48:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

l1376777571

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by godzilla at 2016-11-19 11:48:39
不清楚你想达到什么效果,建议举例说明。

这么说吧
a=magic(5);
b=[1,2,3.4];
for m=1:5
    for n=1:5
         a(m,n)=a(m,n)-b;
    end
end
这样得到的矩阵a的每一个元素都是一个向量,我想问问,有没有什么办法更加快捷,避免for循环,谢谢啦!

发自小木虫Android客户端
细节
3楼2016-11-19 14:25:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

godzilla

金虫 (小有名气)

引用回帖:
3楼: Originally posted by l1376777571 at 2016-11-19 14:25:37
这么说吧
a=magic(5);
b=;
for m=1:5
    for n=1:5
         a(m,n)=a(m,n)-b;
    end
end
这样得到的矩阵a的每一个元素都是一个向量,我想问问,有没有什么办法更加快捷,避免for循环,谢谢啦!
...

>> a=magic(5);
b=[1,2,3,4];
for m=1:5
    for n=1:5
         a(m,n)=a(m,n)-b;
    end
end
带有下标的赋值维度不匹配。
a是5×5的矩阵,a(m,n)=a(m,n)-b运算后a(m,n)变为1×4的向量,运算时会出现错误。

可以试试这个:
kron(a,ones(size(b)))-kron(ones(size(a)),b);
4楼2016-11-19 14:52:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见