Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 需要创建包含特定元素选择的矩阵_Matlab_For Loop_Matrix_Control Structure - Fatal编程技术网

Matlab 需要创建包含特定元素选择的矩阵

Matlab 需要创建包含特定元素选择的矩阵,matlab,for-loop,matrix,control-structure,Matlab,For Loop,Matrix,Control Structure,我得到了以下信息: 其中,“Routenumer”表示道路编号,“gemeente”表示城市,“afstand”表示公里距离,“moeilijkheidsgraad”表示难度 我需要创建一个名为“困难道路”的矩阵,其中包含难度低于3的步行道路的所有给定信息。为了制作这个特定的矩阵,我需要使用矩阵路由(我在代码中制作了矩阵路由,它由原始矩阵组成,没有关于城市的信息) 提前谢谢 如果我理解正确,您需要这个矩阵的子集,其中列出了所有难度小于3的道路。这可以通过以下方式实现: difficultRoa

我得到了以下信息:

其中,“Routenumer”表示道路编号,“gemeente”表示城市,“afstand”表示公里距离,“moeilijkheidsgraad”表示难度

我需要创建一个名为“困难道路”的矩阵,其中包含难度低于3的步行道路的所有给定信息。为了制作这个特定的矩阵,我需要使用矩阵路由(我在代码中制作了矩阵路由,它由原始矩阵组成,没有关于城市的信息)


提前谢谢

如果我理解正确,您需要这个矩阵的子集,其中列出了所有难度小于3的道路。这可以通过以下方式实现:

difficultRoads = routes(routes(:,3) < 3, :);
无需在此处预先分配并自行填充每个列。只需将列水平堆叠在一起即可创建矩阵


回到您最初的问题,这使用了已知的。基本上,我们看一下
routes
的最后一列,确定所有小于3的困难。这是通过
路由(:,3)<3
完成的。这将生成一个逻辑矩阵,其中
true/1
满足条件而
false/0
不满足条件。然后,您将使用该矩阵访问矩阵
routes
中的行,并提取出满足条件的行,从而获得该结果

然而,你写的只是数字数据。你还想展示这些城市

我们可以创建一个结构来帮助我们做到这一点,但首先,您需要定义尚未定义的城市

%// Your data + the cities
nr = [1; 2; 3; 4; 5; 6; 7; 8]
afst = [13; 13; 9.5; 4.5; 11; 12; 16; 8]
gr = [1; 3; 2; 2; 3; 3; 3; 2]     

routes = [nr afst gt];
cities = {'Merelbeke', 'Oudenaarde', 'Kluisbergen', 'Kruishoutem', 'Maarkedal', 'Maarkdeal', 'Luisbergen', 'Oudernaarde'}.';
完成此操作后,形成一个表格:

T = table(nr, cities, afst, gr, 'VariableNames', {'Routenummer', 'Gemeente', 'Afstand', 'Moeilijkheidsgraad'});
请注意,我还为每一列指定了自己的名称,因为如果不指定,它将默认为变量名

我们得到:

T = 

    Routenummer      Gemeente       Afstand    Moeilijkheidsgraad
    ___________    _____________    _______    __________________

    1              'Merelbeke'       13        1                 
    2              'Oudenaarde'      13        3                 
    3              'Kluisbergen'    9.5        2                 
    4              'Kruishoutem'    4.5        2                 
    5              'Maarkedal'       11        3                 
    6              'Maarkdeal'       12        3                 
    7              'Luisbergen'      16        3                 
    8              'Oudernaarde'      8        2     
difficultRoads = 

    Routenummer      Gemeente       Afstand    Moeilijkheidsgraad
    ___________    _____________    _______    __________________

    1              'Merelbeke'       13        1                 
    3              'Kluisbergen'    9.5        2                 
    4              'Kruishoutem'    4.5        2                 
    8              'Oudernaarde'      8        2  
现在您有了这个,请改为索引到此表中:

difficultRoads = T(routes(:,3) < 3, :);

非常感谢。它确实起到了作用,但我还需要在第二列中包括城市。有什么想法吗?回答得好!非常感谢您的帮助。@Nicolas一点问题也没有:)顺便说一句,我把答案改好了一点。我已经为表中的每一列包含了原始瓷砖。祝你好运
T = 

    Routenummer      Gemeente       Afstand    Moeilijkheidsgraad
    ___________    _____________    _______    __________________

    1              'Merelbeke'       13        1                 
    2              'Oudenaarde'      13        3                 
    3              'Kluisbergen'    9.5        2                 
    4              'Kruishoutem'    4.5        2                 
    5              'Maarkedal'       11        3                 
    6              'Maarkdeal'       12        3                 
    7              'Luisbergen'      16        3                 
    8              'Oudernaarde'      8        2     
difficultRoads = T(routes(:,3) < 3, :);
difficultRoads = 

    Routenummer      Gemeente       Afstand    Moeilijkheidsgraad
    ___________    _____________    _______    __________________

    1              'Merelbeke'       13        1                 
    3              'Kluisbergen'    9.5        2                 
    4              'Kruishoutem'    4.5        2                 
    8              'Oudernaarde'      8        2