Create Matrix with zeros, ones and some numbers.
38 次查看(过去 30 天)
显示 更早的评论
I am struggling to create a following matrix in one go (using as few numbers used as possible). Can someone please help me out?
N =
0 0 0 0 0 1
0 0 0 0 0 1
1 2 3 4 5 1
0 2 4 6 8 1
8 7 2 5 9 1
采纳的回答
Jan
2019-3-25
编辑:Jan
2019-3-25
With 2 "numbers" only:
c = ['0 0 0 0 0 1 ', ...
'0 0 0 0 0 1 ', ...
'1 2 3 4 5 1 ', ...
'0 2 4 6 8 1 ', ...
'8 7 2 5 9 1']
sscanf(c, '%g', [6,5]).'
But it depends on the rules if characters are considered as "numbers". But what does "in one go" mean? Is calling functions like dec2base accepted also? Without dec2base:
floor(rem([1; 1; 123451; 24681; 872591] ./ 10.^(5:-1:0), 10))
Or is this "better":
floor(rem([1; 1; 123451; 24681; 872591] ./ flip(10.^(0:5), 10))
更多回答(1 个)
John D'Errico
2019-3-25
编辑:John D'Errico
2019-3-25
Far fewer numbers required...
dec2base(hex2dec({'1','1','1E23B','6069','D508F'}),10) - '0'
ans =
0 0 0 0 0 1
0 0 0 0 0 1
1 2 3 4 5 1
0 2 4 6 8 1
8 7 2 5 9 1
Or, this, with even fewer numerics?
dec2base(base2dec({'1','1','2N97','J1L','IPAN'},36),10) - '0'
But more characters than my first solution.
dec2base([1 1 123451 24681 872591],10) - '0'
2 个评论
Jan
2019-3-26
+1. {'1', '1', '2N97', 'J1L', 'IPAN'} - this reminds me to programming in ZX81 Basic. I had 1kB of RAM and VAL '1' took less memory that a numerical 1.
John D'Errico
2019-3-26
True. Though I'm not sure my nostalgia is well placed for those great, wonderful days of decks of punched cards and great spools of paper tape. There was a trick with decks of cards - draw a diagonal line across the top of the card deck, so that if one accidentally dropped the box of cards on the floor, they could be more easily re-odered.
Those were days when everything we did with computers was completely different. Output was onto great reams of computer printout. One day, I made a mistake plotting a simple figure with what was probably a Calcomp plotter. So the next day I received a long roll of Calcomp paper. Good quality paper too, 3 feet wide, and perhaps 100 feet long before they stopped it, with only a long diagonal line drawn down the length. I brought it home to use as a painting dropcloth, useful for many years afterwards.
I don't miss the days that much when my main computer interface was toggling the dip switches on the front panel of a computer. But there was a lot of fun to be had back then too.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Resizing and Reshaping Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!