查看: 353|回復: 5|關注: 1
打印 上一主題 下一主題

辽宁快乐12选5走势图: [已解決] 怎樣根據數組的index將數組切片呢?

[復制鏈接]

新手

7 麥片

財富積分


辽宁快乐12预测一号码推荐号码 www.exedlj.com.cn 050


1

主題

3

帖子

0

最佳答案
我有一個數組和一些數組下標,怎樣根據數組下標對數組切片呢?
比如說a = [1, 2, 3, 4, 5, 6, 7, 8]; ind = [3, 6];
c{1} = a(0:ind(1));
c{2} = a(ind(1):ind(2));
c{3} = a(ind(2):end);

論壇優秀回答者

中級

601 麥片

財富積分


5001500


3

主題

873

帖子

97

最佳答案
  • 關注者: 74
2#
發表于 2019-5-22 08:34:46 | 只看該作者
c{1} = a(1:ind(1));
c{2} = a(ind(1)+1:ind(2));
c{3} = a(ind(2)+1:end);
最好還要判斷有沒有索引值越界

論壇優秀回答者

權威

3701 麥片

財富積分



3

主題

3864

帖子

828

最佳答案
  • 關注者: 175
3#
發表于 2019-5-22 14:37:39 | 只看該作者
  1. a = [1, 2, 3, 4, 5, 6, 7, 8]; ind = [3, 6];
  2. ind1=diff([0 ind length(a)]);
  3. c=mat2cell(a,1,ind1);
復制代碼

新手

7 麥片

財富積分


050


1

主題

3

帖子

0

最佳答案
4#
 樓主| 發表于 2019-5-23 01:46:20 | 只看該作者

如果是二維的數據,該怎么處理呢?
a = [1, 2, 3, 4, 5, 6, 7, 8; 1, 2, 3, 4, 5, 6, 7, 8; 1, 2, 3, 4, 5, 6, 7, 8]; ind = [3, 6;3, 6;3, 6];

論壇優秀回答者

權威

3701 麥片

財富積分



3

主題

3864

帖子

828

最佳答案
  • 關注者: 175
5#
發表于 2019-5-23 18:20:01 | 只看該作者 |此回復為最佳答案
ilongshan 發表于 2019-5-23 01:46
如果是二維的數據,該怎么處理呢?
a = [1, 2, 3, 4, 5, 6, 7, 8; 1, 2, 3, 4, 5, 6, 7, 8; 1, 2, 3, 4,  ...

ind = [3, 6;3, 6;3, 6];
每行都是一樣的話(這里是[3 6]),可以一起弄,否則需要循環每行。
  1. a = [1, 2, 3, 4, 5, 6, 7, 8; 1, 2, 3, 4, 5, 6, 7, 8; 1, 2, 3, 4, 5, 6, 7, 8]; ind = [3, 6;3, 6;3, 6];
  2. ind1=diff([0 ind(1,:) length(a)]);
  3. c=mat2cell(a,ones(1,size(a,1)),ind1);
復制代碼

新手

7 麥片

財富積分


050


1

主題

3

帖子

0

最佳答案
6#
 樓主| 發表于 2019-5-24 02:25:33 | 只看該作者
maple1314168 發表于 2019-5-23 18:20
ind = [3, 6;3, 6;3, 6];
每行都是一樣的話(這里是[3 6]),可以一起弄,否則需要循環每行。
...

非常感謝您的回復,非常有幫助
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規則

關閉

站長推薦上一條 /4 下一條

快速回復 辽宁快乐12预测一号码推荐号码 返回列表