フィルターのクリア

MATLAB Function에서 struct의 배열 별 요소 개수 구하기

4 ビュー (過去 30 日間)
eblee
eblee 2023 年 9 月 20 日
コメント済み: Dyuman Joshi 2023 年 9 月 21 日
MATLAB Function에서 arr의 struct 배열 개수, 배열 별 요소의 개수를 구하고 출력하고 싶습니다.
배열 별 요소 개수를 구하기 위해 cell_num을 구현했는데 적절한가요? 또한, 출력하려면 어떻게 해야 하나요?
cell_num = struct();
arr = struct("sig1",{{1,2,3,4}},"sig2",{{4,5,6}},"sig3",{{7,8}});
sig_num = 3;
for i = 1:sig_num
cell_num = structfun(@size,arr,"UniformOutput",false);
y = cell_num(i);
end

採用された回答

Dyuman Joshi
Dyuman Joshi 2023 年 9 月 20 日
%Defining structure
cell_num = struct();
arr = struct("sig1",{{1,2,3,4}},"sig2",{{4,5,6}},"sig3",{{7,8}})
arr = struct with fields:
sig1: {[1] [2] [3] [4]} sig2: {[4] [5] [6]} sig3: {[7] [8]}
%Field names of the structure arr
names = fieldnames(arr)
names = 3×1 cell array
{'sig1'} {'sig2'} {'sig3'}
%Number of fields in arr
n = numel(names)
n = 3
%Number of elements in each field
y = structfun(@numel,arr)
y = 3×1
4 3 2
To display or printf -
%Method 1
disp(y)
4 3 2
%Method 2
fprintf('%d\n',y)
4 3 2
  2 件のコメント
eblee
eblee 2023 年 9 月 21 日
a = structfun(@numel,arr,UniformOutput=false);
fprintf('%d\n',a);
Running on the MATLAB Function results in an 'An input argument with type 'struct' is inconsistent with the conversion character 'd' in the 'formatSpec'.' error.
Is there any way to output a structure from the MATLAB function?
Dyuman Joshi
Dyuman Joshi 2023 年 9 月 21 日
There is no need to use UniformOutput=false for the structfun command.
You can see that I have not used that in my code above.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File Exchange멀티레이트 신호 처리 についてさらに検索

製品


リリース

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!