how find a decimal number in a table

조회 수: 2 (최근 30일)
shamal
shamal 2025년 3월 23일
댓글: shamal 2025년 3월 23일
tab=load('matlab_Tab.mat');
find(mod(tab.Tab,1)~=0);
Error using find
Incorrect number or types of inputs or outputs for function find.
  댓글 수: 1
Chuguang Pan
Chuguang Pan 2025년 3월 23일
mod(tab.Tab,1) is a Table, which is not supported by find operation.

댓글을 달려면 로그인하십시오.

답변 (2개)

shamal
shamal 2025년 3월 23일
이동: dpb 2025년 3월 23일
yes correct...i've covert in in array and i do it..thank

dpb
dpb 2025년 3월 23일
이동: dpb 2025년 3월 23일
whos -file matlab_Tab.mat % see what is in the .mat file first
Name Size Bytes Class Attributes Tab - 41077 table
tab=load('matlab_Tab.mat');
tab % show it
tab = struct with fields:
Tab: [387x12 table]
tTab=tab.Tab; clear tab % somehow a table was saved into a struct; return it to the table
head(tTab) % show the content...
strike OI_Call OI_Put OI_CHANGE_Call OI_CHANGE_Put OI_GAMMA_Call OI_GAMMA_Put OI_CHANGE_GAMMA_Call OI_CHANGE_GAMMA_Put VariazionePercCall_ VariazionePercPut_ GammaTot ______ _______ ______ ______________ _____________ _____________ ____________ ____________________ ___________________ ___________________ __________________ ________ 3400 0 1 0 0 0 0 0 0 0 0 0 3450 0 0 0 0 0 0 0 0 0 0 0 3500 0 1 0 0 0 0 0 0 0 0 0 3550 0 0 0 0 0 0 0 0 0 0 0 3600 0 2 0 0 0 0 0 0 0 0 0 3650 0 0 0 0 0 0 0 0 0 0 0 3700 0 485 0 0 0 0 0 0 0 0 0 3750 0 0 0 0 0 0 0 0 0 0 0
The function form of load returns the content of a .mat file as a struct with the variable names as fieldnames in the structure. In this case that turned the table, tab into a filed in the new tab variable.
The above gest the table back programmatically, the easier solution is to use the command form of load instead...
clear % remove everything so far so start clean...
load matlab_Tab
whos
Name Size Bytes Class Attributes Tab 387x12 41077 table
head(Tab)
Now one has the original table without any unecessary machinations to get to it...
Now the question becomes one of what the
find(mod(tab.Tab,1)~=0);
command was intended to do?
  댓글 수: 1
shamal
shamal 2025년 3월 23일
hi, I already solved it by writing
gg=table2array(Tab);
gg1=find(mod(gg,1)~=0);
if gg1
msgbox('Ci sono decimali..correggerli')
return;
end

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Tables에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by