如何对本身包含 1x17 个单元格的每个单元格执行函数?
How to perform functions on each cell containing 1x17 cells in itself?
我有一个大小为 1x128 的嵌套元胞数组 'y2a',每个元胞包含大小为 1x17 的元胞数组。
例如:y2a{1,1} 是一个 1x17 单元格 array.Similarly y2a{1,2} 等等。
我必须使用以下公式将每个子元胞数组中的数据相乘(即;y2a{1,1} 或 y2a{1,2}...等)
for cells 1-7
S=(celldata)*(2^(7-i))
for cells 8-16
S=(celldata)*(2^(7-i))
其中 'i' 是 cell.Since 的位置,只有 17 个子单元并且仅使用其中的 16 个 i 的值在 (1,16) 之间变化。
y2a 中的每个嵌套单元格都有一个 1 位二进制数作为其数据。
我想对每个 y2a 中存在的所有嵌套单元格执行上述功能。
我尝试了以下代码来执行此
Y=y2a{1,1}
for j=1:1:7
S1(1,j)=(Y(1,j))*(2^(7-j))
end
for k=8:1:16
S2(1,k)=(Y(1,k)*(2^7-k))
end
这似乎适用于一个单元格,但要对所有单元格执行此操作,我在形成 for loop.How 时遇到了麻烦,我应该在 matlab 中这样做吗?
首先使用以下代码将嵌套元胞数组转换为二维矩阵
A = reshape(cell2mat([y2a{:}]),[],numel(y2a)).';
你也可以看看下面的link因为我也问过类似的问题
然后使用
执行所需的操作
B=num2cell(A);%convert it into a 2D matrix of size 128x17
for i3=1:1:128
for j = 1:1:7
S1{i3,j} = (B{i3,j})*(2^(7-j))
end
end
for i4=1:1:128
for k = 8:1:16
S2{i4,k} = (B{i4,k})*(2^(k-7))
end
end
你可能会得到输出
我有一个大小为 1x128 的嵌套元胞数组 'y2a',每个元胞包含大小为 1x17 的元胞数组。
例如:y2a{1,1} 是一个 1x17 单元格 array.Similarly y2a{1,2} 等等。
我必须使用以下公式将每个子元胞数组中的数据相乘(即;y2a{1,1} 或 y2a{1,2}...等)
for cells 1-7
S=(celldata)*(2^(7-i))
for cells 8-16
S=(celldata)*(2^(7-i))
其中 'i' 是 cell.Since 的位置,只有 17 个子单元并且仅使用其中的 16 个 i 的值在 (1,16) 之间变化。
y2a 中的每个嵌套单元格都有一个 1 位二进制数作为其数据。
我想对每个 y2a 中存在的所有嵌套单元格执行上述功能。 我尝试了以下代码来执行此
Y=y2a{1,1}
for j=1:1:7
S1(1,j)=(Y(1,j))*(2^(7-j))
end
for k=8:1:16
S2(1,k)=(Y(1,k)*(2^7-k))
end
这似乎适用于一个单元格,但要对所有单元格执行此操作,我在形成 for loop.How 时遇到了麻烦,我应该在 matlab 中这样做吗?
首先使用以下代码将嵌套元胞数组转换为二维矩阵
A = reshape(cell2mat([y2a{:}]),[],numel(y2a)).';
你也可以看看下面的link因为我也问过类似的问题
然后使用
执行所需的操作B=num2cell(A);%convert it into a 2D matrix of size 128x17
for i3=1:1:128
for j = 1:1:7
S1{i3,j} = (B{i3,j})*(2^(7-j))
end
end
for i4=1:1:128
for k = 8:1:16
S2{i4,k} = (B{i4,k})*(2^(k-7))
end
end
你可能会得到输出