簡體   English   中英

如何將條件放入Matlab的特定列中?

[英]How do I put a condition into a specific column for matlab?

想在這里檢查我可以使用哪種代碼在matlab的特定列上創建特定條件。 這樣的話,我有一個文本文件(見圖),

在此處輸入圖片說明

其中包含四列值。 這是matlab的代碼,如下所示

fileID = fopen('test1.txt');
A = dlmread('test1.txt')
B = A>1000
fclose(fileID);

因此,根據這一行代碼,我導入了文件並將其放置在矩陣A中。隨后,我為矩陣B設置了一個條件,其中A必須具有大於1000的值。使用此方法,我可以獲得返回值我想要的是“ 0”和“ 1”。 現在,我要創建一組條件,以便如果任何行中的第1、2和3列等於1,我將能夠在該行中顯示/打印輸出“ Powergrip”。 除了該條件之外,任何行中的1,2是否應等於1,該行中是否會顯示“ precisiongrip”? 我確實相信這與一系列其他條件有關,但是我不確定如何編寫此條件。 請原諒我糟糕的編碼能力,因為我真的很陌生。 謝謝!

首先,使用dlmread()時不需要fopen()fclose()函數,只需dlmread()使用dlmread()僅在使用fread()等其他函數時才需要它們)。

您可以使用all()函數查找在所有列(或行)中均包含1的行(或列)。 要查找所有列中均包含1的行,請執行以下操作:

C = all(B, 2); % The "2" means work across columns.

要查找第1、2和3列中有1的情況,只需傳遞這三列:

C = all(B(:,[1,2,3]), 2); % PowerGrip

或對於第1,2列:

D = all(B(:,[1,2]), 2);   % PrecisionGrip

要創建描述數組,您需要一個字符串單元格數組。 您可以通過多種方式生成此代碼,這是一個簡單的示例:

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'};

使用數字顯示單詞PowerGrip和PrecisionGrip可能最容易通過table完成(盡管您可以通過多種方法來完成)。 例如:

T = array2table(A)
T.Desc = E         % Add a column of descriptions...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM