产生线性阵列[0 1 0 1 2 1 0 1 2……)

1视图(30天)
FlyingSpoon
FlyingSpoon 2020年5月13日
评论道: FlyingSpoon2020年5月14日
所以,我想生成一个这样的线性数组输出
[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
。。
结束

接受的答案

Stephen23
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的评论
FlyingSpoon
FlyingSpoon 2020年5月14日
谢谢你,你输入的。Stephen回答更有可能接近我真正想要的。原因是我想懂的如何让这个专栏是这样的,因为我想做一些基于此值的计算。我还想象它如何进行
谢谢你!

登录置评。

更多的答案(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

登录置评。


Mehmed萨德
Mehmed萨德 2020年5月13日
2 = 0:4;
jj = 1: 1: 5;
pos_cell = arrayfun (@ (x) 0: x,二世,“大学”,0);
neg_cell = arrayfun (@ (x) 1: 1: x, jj,“大学”,0);
所有= [pos_cell; neg_cell];
所有=({}):所有

类别

找到更多的在循环和条件语句帮助中心文件交换

标签

下载188bet金宝搏

社区寻宝

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

开始狩猎!