Remove certain elements from a matrix

I have a text file Pressure which has a lot of rows and two columns and I want to remove the rows and columns where the columns are equal to zero, and display the old graph and new graph on the same plot and this is what i have so far, I don't know what to put in the if statement.
% Copy data from Pressure to OldData
OldData = load('Pressure.txt');
% Copy OldData to NewData
NewData = OldData;
% Remove points where there are zeros
for i = 1:length(OldData)
if(OldData(i,2) == 0)
end
end
% Plot both in same plot:
plot(OldData(:,1),OldData(:,2),'--b',NewData(:,1),NewData(:,2), 'r')

1 件のコメント

Azzi Abdelmalek
Azzi Abdelmalek 2016 年 4 月 15 日
Make your Question clear. Avoid details that are not important to resolve your problem. You can post a short example with expected result

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

回答 (2 件)

James Tursa
James Tursa 2016 年 4 月 15 日
編集済み: James Tursa 2016 年 4 月 15 日

0 投票

Replace this:
% Remove points where there are zeros
for i = 1:length(OldData)
if(OldData(i,2) == 0)
end
end
with this:
% Remove points where there are zeros
x = OldData(:,2)==0; % Logical indexes where column 2 is 0
NewData(x,:) = []; % Remove the rows where column 2 is 0
Roger Stafford
Roger Stafford 2016 年 4 月 16 日

0 投票

Or you just write:
NewData = OldData(OldData(:,2)==0,:);

カテゴリ

ヘルプ センター および File ExchangeCreating, Deleting, and Querying Graphics Objects についてさらに検索

質問済み:

NT
2016 年 4 月 15 日

回答済み:

2016 年 4 月 16 日

Community Treasure Hunt

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

Start Hunting!

Translated by