Wer*_*ner 5 matlab subset cell-array matrix-indexing
这个问题是我在回答这个问题的时候出现的。这应该是我正在做的一些愚蠢的错误,但我无法得到它是什么错误\xe2\x80\xa6
\n\nmyMatrix = [22 33; 44 55]\nRun Code Online (Sandbox Code Playgroud)\n\n返回:
\n\n>> subsref(myMatrix, struct(\'type\',\'()\',\'subs\',{{[1 2]}} ) ); \n\nans =\n\n 22 44\nRun Code Online (Sandbox Code Playgroud)\n\n将其与细胞一起使用时:
\n\nmyCell = {2 3; 4 5} \nRun Code Online (Sandbox Code Playgroud)\n\n返回:
\n\n>> subsref(myCell,struct(\'type\',\'{}\',\'subs\',{{[1 2]}} ) );\n\nans =\n\n 2 % WHATTT?? Shouldn\'t this be 2 and 4 Matlab??\nRun Code Online (Sandbox Code Playgroud)\n\n检查subsref 文档,我们看到:
\n\n\n查看 MATLAB 如何调用表达式的 subsref:
\n\nA{1:2} 语法 A{1:2} 调用 B = subsref(A,S),其中 S.type=\'{}\' 和\n S.subs={[1 2]}。
\n
这似乎不正确,因为 subsref 返回的值只是第一个参数,而不是所有参数。
\n\n那么如果有人这样做:
\n\n>> [a,b]=subsref(myCell,struct(\'type\',\'{}\',\'subs\',{{[1 2]}} ) ) \n\na =\n\n 2\n\n\nb =\n\n 4 % Surprise!\nRun Code Online (Sandbox Code Playgroud)\n\n但这与 myCell{[2 4]} 不同,后者会自动返回:
\n\n>> myCell{[1 2]} \n\nans =\n\n 2\n\n\nans =\n\n 4\nRun Code Online (Sandbox Code Playgroud)\n\n我需要对我使用的每个索引使用 subsref 和一个输出 access myCell,还是我遗漏了一些东西?