我如何在一个命令生成给定矩阵?

26日视图(30天)
marciuc
marciuc 2011年2月23日
评论道: 为副总经理 2023年2月23日
我必须产生一个矩阵a = [1 1 0 0 0;1 1 1 0 0;0 1 1 1 0;0 0 1 1 1;0 0 0 1 1]
写一个命令。
老师告诉一些有用的命令
眼睛(m, n)
(m, n)
0 (m, n)
兰特(m, n)
我给你一个啤酒
4评论
1月
1月 2011年2月25日
+ 1:如果你能解释所有的解决方案在这里工作,你会通过完整的基金宝搏官方网站于Matlab课程只是一个问题。每一个答案是有趣的,但一起回答是认真的。

登录置评。

答案(17)

1月
1月 2011年2月23日
参照你之前的帖子,现在已被删除:我知道,你是谁,你是marciuc。
起初,我建议:
= (1 1 0 0 0;1 1 1 0 0;0 1 1 1 0,0 0 1 1 1;1 0 0 0 1)
这是一个命令,这是最有效的解决方案:没有临时记忆,没有调用commnad开销,容易调试。没有更好的解决方案。

肖恩·德Wolski
肖恩·德Wolski 2011年2月23日
最紧凑的:
一个=托普利兹([1 1 0 0 0])
1评论
1月
1月 2011年2月23日
这是最紧凑的命令,除了雄心勃勃的兰德apporach。我投票。

登录置评。


1月
1月 2011年2月23日
把啤酒给你的老师。他显然是有趣的,如果他建议兰德——但它确实工作原理:
=轮(兰德(5))
至少有一个机会去得到正确的答案。
5个评论
汪东城Doke
汪东城Doke 2011年2月23日
或者如果你有MATLAB R2008b或更新,
=兰迪([0,1],5)

登录置评。


1月
1月 2011年2月23日
A = dec2bin ([24 28 14 7 3])' 0 '
4评论
1月
1月 2011年2月24日
又有呜呜祖拉。这个问题显然是比我预期的更残忍的。又看到:减去零可以揭示的秘密信息。

登录置评。


马特Tearle
马特Tearle 2011年2月23日
充满(画廊(=“tridiag”(1、4),则(1、5),(1,4)))
但是现在我最喜欢的:
= 1-reshape (mod(地板((1:25)/ 3),2),5、5)
1评论
肖恩·德Wolski
肖恩·德Wolski 2011年2月23日
不错的工作,你现在最喜欢的!

登录置评。


肯尼斯·伊顿
肯尼斯·伊顿 2011年2月28日
我不相信没有人建议膨胀:
一个= imdilate(眼(5),(2));
或卷积:
=符号(conv2(眼(5),(2),“相同”));
=符号(filter2((2)、眼睛(5)));
1评论
1月
1月 2011年2月28日
*你*现在建议。所以我现在不能相信它。+ 1

登录置评。


1月
1月 2011年2月23日
一个通用的方法来创建一个对角矩阵使用诊断接头(在“帮助诊断接头”解释为例):
一个=诊断接头(1(1、5))+诊断接头((1、4),1)+诊断接头((1、4),1);
你可以讨论,如果这仍然是“一个命令”。
我不喝啤酒。但是你可以问你的老师给我指出了解决这个作业。
2的评论
马特Tearle
马特Tearle 2011年2月23日
你可以拥有所有的啤酒marciuc老师送我的。这是怎么交易的?

登录置评。


保罗席尔瓦
保罗席尔瓦 2011年2月23日
这是最了不起的方式生成矩阵:D
disp (你我敢尝试无限猴子矩阵的)
回答=输入(按y和输入如果你敢于尝试的,“年代”)
如果(比较字符串(答案,“y”))
disp (“恭喜你不是一个懦夫”)
disp (“祝你好运”)
暂停(1)
disp (“请稍等或按CTRL + C取消的)
disp (但取消手术会让你是个懦夫! !”)
一个= [1 1 0 0 0;1 1 1 0 0;0 1 1 1 0;0 0 1 1 1;0 0 0 1 1];
w = 0; b = 0 (5,5);
~ isequal (a, b)
b =兰迪([0 1]5 5);
w = w + 1;
结束
disp (祝贺我们发现对你无限猴子矩阵的)
b
disp (“后”)
w
disp (“尝试”)
其他的
disp (“你是个胆小鬼! ! ! !”)
结束
1评论
肖恩·德Wolski
肖恩·德Wolski 2011年2月23日
耶!无限猴子在一周内第二次亮相。

登录置评。


沃尔特·罗伯森
沃尔特·罗伯森 2011年2月25日
编辑:欠压/请求。
eval (char (mod (1.0599 ^
“我< o <佐< < < d < d_C < C < < d < d_d < C < < C < d_d < d < C < C <重金属镉< < d < C <简历',
96)))
1评论
1月
1月 2011年2月25日
谢谢你的线断裂。该解决方案将推动marciuc的老师疯了。这样的丑陋!+ 1

登录置评。


1月
1月 2011年2月23日
= abs (bsxfun (@minus 1:5,转置(1:5)))< 2

1月
1月 2011年2月23日
= 1 -(下三角阵((5),2)+ triu ((5), 2))

1月
1月 2011年2月24日
我无法抗拒的一些变化DEC2BIN主题:
一个= dec2bin (“8 <。“#”- 32)' 0 '
一个= dec2bin (“FJ < 51”- 46)' 0 '
但最后你甚至可以省略第一个减法,也因为DEC2BIN操作CHAR向量,但你不能直接输入非输出:
q = [100 101 99 50 98 105 110 40 39 24 28 14 7 3 39 41 45 39 48 39);
剪贴板(“复制”char (q))
= = > ctrl - v命令窗口
> > dec2bin (“# # # # #”)- - -' 0 '
这里的“#”的非输出ASCII码[3]14日,24日,28日7日。你甚至可以把它们写在m文件。

保罗席尔瓦
保罗席尔瓦 2011年2月24日
b = [0 0 1 1 1
0 0 0 1 1
1 0 0 0 1
1 1 0 0 0
1 1 1 0 0)
= ~ b;

马特无花果
马特无花果 2011年2月24日
不管怎么说,一行。因为数组至少是动态预分配的,代码是快。
2 = 5:1:1,jj = min(2 + 1, 5): 1:马克斯(ii-1, 1), (ii, jj) = 1;结束,结束
2的评论
马特无花果
马特无花果 2011年2月25日
LOL 1月我很惊讶这样的答案比BSXFUN和快眼+诊断接头+诊断接头的解决方案,即使对N = 1000。金宝搏官方网站

登录置评。


为副总经理
为副总经理 2023年2月23日
编辑:为副总经理 2023年2月23日
我真不敢相信所有人都错过了 明显的 解决方案!
rng (46783490);兰迪([0 1]5 5)
ans = 5×5
1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1
如此简单!
2的评论
为副总经理
为副总经理 2023年2月23日
我用了经典的“承诺蛮力,然后上床睡觉”算法。

登录置评。


保罗席尔瓦
保罗席尔瓦 2011年2月23日
诊断接头(诊断接头(眼(4,4)),1)+诊断接头(诊断接头(眼(4,4)),1)+眼(5,5)
诊断接头((1、4),1)+诊断接头((1、4),1)+眼(5,5)
这是类似于1月以上解决方案

marciuc
marciuc 2011年2月24日
谢谢你们……问候来自罗马尼亚
1评论
1月
1月 2011年2月24日
请帮我们忙,接受一个答案。或选择一个让你的老师。
旁边的乐趣,这个线程将会非常有用,因为它描述了三对角矩阵详尽的创建。
我真的希望你也有一些乐趣。

登录置评。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!