产生线性阵列[0 1 0 1 2 1 0 1 2……)
1视图(30天)
显示旧的评论
嗨
所以,我想生成一个这样的线性数组输出
[0 1 0 1 2 1 0 1 2 3 2 1 0 1 2 3 4 3 2 1 0 1 2 3 4等等)
使用for循环。我不确定是否使用一个或两个for循环(嵌套的)
应该是以下的代码
n表示顺序和m从n n和n的增加。另一件事,也是消极的指标,我认为这可以通过使用一个临时解决价值像temp = 1:长度(米)。但总的来说我不太确定我该如何把所有的代码
为我= 0:n
m = n: n
…。。
结束
0评论
接受的答案
Stephen23
2020年5月13日
N = 4;
C =细胞(1,N);
为k = 1: N
C {k} = - k: k;
结束
V = [0 C {}):
给:
V =
0 1 0 1 2 1 0 1 2 3 2 1 0 1 2 3 4 3 2 1 0 1 2 3 4
更多的答案(2)
里克
2020年5月13日
不需要
为
循环:
n = 4;
输出= cell2mat (arrayfun (@ (x) - x, x, 0: n,“UniformOutput”、假));
%测试你的例子
示例= [0 1 0 1 2 1 0 1 2 3 2 1 0 1 2 3 4 3 2 1 0 1 2 3 4);
isequal(输出)
2的评论
里克
2020年5月13日
编辑:里克
2020年5月13日
我不会给你工作代码的for循环,因为开始听起来像解决作业。
如果你坚持一个for循环:试着回答这个问题有什么不同与n = 3 n = 4:
m = 4:4,
output_for_n_is_4 = [output_for_n_is_3 m];
所以如果你发现一个给定的n元素的数量会导致您可以使用它来发现指数:
印第安纳州= (numel_for_n_is_3 + 1): numel_for_n_is_4;
输出(印第安纳州)= m;
在这一点上,问题是如何想办法找到的价值
numel_for_n_is_4
。幸运的是你已经工作代码:
clc
为n = 1:5
流(“n = % d长度是% d \ n 'n元素个数(cell2mat (arrayfun (@ - x (x): x, 0: n,“UniformOutput”,false))))
结束
% n = 1的长度是4
% n = 2长度是9
% n = 3的长度是16
% n = 4长度是25
% n = 5长度是36
你碰巧认识这个序列的数字吗?
改进速度不是巨大的,只有40%对小大n: n和20%
clc,清晰
n_list =轮(10 ^ (0:0.1:4));
runtime1 = 0(1,元素个数(n_list));
runtime2 = 0(1,元素个数(n_list));
为n_ind = 1:元素个数(n_list)
n = n_list (n_ind);
抽搐
output_1 = cell2mat (arrayfun (@ (x) - x, x, 0: n,“UniformOutput”、假));
runtime1 (n_ind) = toc;
抽搐
output_2 = 0 (1,____);
为k =____
印第安纳州=____;
output_2(印第安纳州)=____;
结束
runtime2 (n_ind) = toc;
结束
图(1)中,clf (1)
情节(n_list runtime1、n_list runtime2)
包含(“n”),ylabel (“执行时间”)
传奇(“数组”,“循环”,“位置”,“西北”)
runtime1。\ runtime2