Excelの数値変換について

조회 수: 3(최근 30일)
健気 大川
健気 大川 2021년 5월 27일
댓글: 健気 大川 2021년 5월 29일
図に添付したようにB列に0,1,10の数値があります。この数値を1を見つけたら10を見つけるまでの間の数値を5に変換したいです。現在説明のためC列に変換後を示しています。出力は同じB列に変換したもの上書きしたいです。どなたか助言をお願いいたします。

채택된 답변

Hernia Baby
Hernia Baby 2021년 5월 27일
편집: Hernia Baby 2021년 5월 28일
find関数で1と10の座標を見つけ、その間を5で埋めます
※存在しないx1を設定していましたのでxに修正しました
clear,clc;
x=xlsread('test2.xlsx');
[idx(:,1), ~] = find(x==1);
[idx(:,2), ~] = find(x==10);
for i = 1:length(idx(:,1))
x(idx(i,1):idx(i,2),1)=5;
end
x
  댓글 수: 7
健気 大川
健気 大川 2021년 5월 29일
解決いたしました!何度も質問してしまいお手数おかけいたしました。
本当にありがとうございました!

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

추가 답변(1개)

Atsushi Ueno
Atsushi Ueno 2021년 5월 27일
편집: Atsushi Ueno 2021년 5월 27일
上記Q&Aを真似てExcelの入出力を追記しました。
% 数値だけ読み込む(Aはテストデータと正解の両方)
[A,~,~] = xlsread('test4matlab.xls');
% テストデータだけをBにおく
B = A(:,1)'
% 結果をおくCを一旦ゼロクリアする
C = zeros(1,size(B,2));
% Cの「B=1の所からB=10の所まで」を5に設定する
C(cell2mat(arrayfun(@colon, find(B==1), find(B==10), 'un', false))) = 5
% 同じB列に変換したもの上書きする
xlswrite('test4matlab.xls', C', 'B2:B24');

태그

Community Treasure Hunt

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

Start Hunting!