Matlab 如何从单元格数中找到行数和列数

Matlab 如何从单元格数中找到行数和列数,matlab,Matlab,请告诉我如何从单元格数中找到行数和列数。例如,第12个单元格的行和列是1和3。另外,关于3D矩阵,你必须仔细了解单元的概念,单元在Matlab中是自己的结构 也就是说,您希望将线性索引转换为子索引,这是通过ind2sub函数完成的: A=magic(4); %create 4x4 magic matrix subidx=find(A==2); %subindex of the value 2, returns 5 [i,j]=ind2sub(size(A),subidx) 返回 i =

请告诉我如何从单元格数中找到行数和列数。例如,第12个单元格的行和列是1和3。另外,关于3D矩阵,你必须仔细了解单元的概念,单元在Matlab中是自己的结构

也就是说,您希望将线性索引转换为子索引,这是通过
ind2sub
函数完成的:

A=magic(4); %create 4x4 magic matrix

subidx=find(A==2); %subindex of the value 2, returns 5 

[i,j]=ind2sub(size(A),subidx)
返回

i =

     1


j =

     2

这是基础,不是MatLab特定的第12个单元格是9行 注意:以下假设基于0的数组,显然Matlab是基于1的。。 e、 g

所以假设您知道一行中的列数

row = 12 / 9 ( = 1)
col = 12 % row ( = 3)  % is modulus operator i.e remainder after integer division

你的问题不清楚。你说的第12个牢房是什么意思?矩阵的维数是多少?你实际上是指一个单元矩阵(即,
{…}
),还是指一个规则矩阵的元素?我假设你想把一个线性索引转换成一个下标索引,但是如果是这样的话,我想不出一个矩阵的形状可以让12变成(1,3),请解释一下你从哪里得到的数字。可以给我一个例子吗谢谢。对不起,我的简单问题没问题,我们都问过这些简单的问题一次<代码>格式压缩可用于代码运行输出的“压缩”显示。这是我个人的偏好,所以这确实是一个建议。我认为你在这里做出了两个错误的假设。首先,Matlab从1开始索引,而不是0。其次,Matlab将首先倒计时列(即主列),而不是跨行倒计时。(Matlab中的模是
mod(,)
)将编辑答案,这不是Matlab的答案,只是从单元格到行/列的基础知识。
row = 12 / 9 ( = 1)
col = 12 % row ( = 3)  % is modulus operator i.e remainder after integer division