gostaria de verificar aqui que tipo de código eu poderia usar para criar uma condição específica em uma coluna particular para matlab. Então aqui está o caso, eu tenho um arquivo de texto (veja a imagem),
com quatro colunas de valores nele. E aqui está o código para matlab conforme fornecido abaixo
fileID = fopen('test1.txt');
A = dlmread('test1.txt')
B = A>1000
fclose(fileID);
Portanto, de acordo com esta linha de código, importei o arquivo e os coloquei em uma matriz A. Posteriormente, defini uma condição para a matriz B em que A deve ter um valor maior que 1000. Usando isso, consegui obter retornos de '0' e '1's, que é o que eu queria. Agora, eu quero criar um conjunto de condições de forma que se as colunas 1, 2 e 3 em qualquer uma das linhas forem iguais a 1, eu serei capaz de exibir / imprimir uma saída nessa linha que diz 'Powergrip'. Além dessa condição, 1,2 deve ser igual a 1 em qualquer uma das linhas, haveria um visor nessa linha que diz 'precisãogrip'? Eu acredito que isso tem a ver com uma série de condições if else, mas não tenho certeza de como escrever estas condições. Por favor, perdoe minhas pobres habilidades de codificação, pois sou realmente novo nisso. Obrigada!
Em primeiro lugar, você não precisa das funções fopen()
e fclose()
ao usar dlmread()
, apenas use-as por si só (você só precisa delas quando estiver usando outras funções como fread()
).
Você pode usar a all()
função para encontrar linhas (ou colunas) que tenham 1 em todas as colunas (ou linhas). Para encontrar linhas que contenham 1 em todas as colunas, faça o seguinte:
C = all(B, 2); % The "2" means work across columns.
Para encontrar casos em que há 1 nas colunas 1, 2 e 3, basta passar essas três colunas:
C = all(B(:,[1,2,3]), 2); % PowerGrip
ou para as colunas 1,2:
D = all(B(:,[1,2]), 2); % PrecisionGrip
Para fazer uma série de descrições, você precisa de uma matriz de células de strings. Existem várias maneiras de gerar isso. Aqui está um exemplo simples:
E = cell( size(C) ); % Make a cell array to hold strings, same size as C
E(:) = {'none'}; % Fill all rows with "none" to start. Could use repmat() to create E...
E(C) = {'PowerGrip'};
E( D & not(C) ) = {'PrecisionGrip'};
Exibir as palavras PowerGrip e PrecisionGrip além dos números é provavelmente mais fácil de ser feito com um table
(embora você possa fazer isso de várias maneiras). Por exemplo:
T = array2table(A)
T.Desc = E % Add a column of descriptions...
Este artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras