如何得到一个for循环在我的代码添加表的结果和情节吗?

6视图(30天)
你好;
我的问题是,我想要一个表的结果包括第一coloumn是“R”(2 - 7),第二个是“N_states”(每一个“R”我应该spesefic“N_states”),然后画出表。(提示:代码(从3 - 11行)generets只是一个“N_states”一个“R = 7”corectly但我想有不同的“N_states”不同的“R”然后阴谋“N_states”更小。“R”)
这是我的代码:
R = 7
%
% R = 7;
N_states = 0;
nx = 1: R
纽约= 1:R
如果((nx。* nx +纽约。*纽约)< = R * R)
N_states = N_states + 1;
结束
结束
结束
%
R = R + 1;
结束
T =表(R (:), N_states (:));
情节(T)
2的评论

登录置评。

接受的答案

汉克
汉克 2020年3月9日
是的,有一些问题你的for循环。但是问题与态密度都很有趣!
记住,当你说“R = 7;…端”,matlab自动增量R在每一个循环。你不需要包括R + 1。
同时,你想收集R和N_states值的表,但你只会使标量值的写在每个迭代的循环。你需要分配一个数组的R和N_states值循环之前。在这种情况下既然你最终使用一个表,你可以分配一个表。
R = (7)”;%分配列向量R,整数2,3,4 . . 7
N_states = 0(大小(R));%分配N_states为零。这个向量是相同的形状R
T =表(R, N_states);%与这些值创建一个表
m = 1:高度(T)% T和指数遍历的所有行
nx = 1:西奥多(m)罗斯福% nx和纽约范围从1到R, R指定表的这一行m
纽约= 1:西奥多(m)罗斯福%你确定你不想去从0 ?
如果((nx。* nx +纽约。*纽约)< =西奥多(m)罗斯福。*西奥多(m)罗斯福)
T.N_states (m) = T.N_states (m) + 1;%增加这个N_states表
结束
结束
结束
%没有R、m或nx的递增,纽约。
结束
%的表没有显式的情节功能。提取的向量和情节是这样的:
情节(西奥多。罗斯福T.N_states)
计算有更快的方法来解决这个问题,但是我知道这个感觉。
3评论

登录置评。

更多的答案(0)

类别

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

社区寻宝

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

开始狩猎!