- log
- i, j
- plot
- sum
- input
- size, length, etc.
A Problem with log10
19 ビュー (過去 30 日間)
古いコメントを表示
Dear all
I just began to work w Matlab. I have an array with decimal numbers and zeros from which I have to calculate log10 and write a new array, but it doesn't work. When i run this i got error "Attempted to access log10(0.946491); index must be a positive integer or logical." code is as follows
log10=zeros(2030,1354);
for j=1:1354
for i=1:2030
log10(i,j)=R547(i,j)/R531(i,j);
end
end
log10(isnan(log10)) = 0 ; %my array
>> for j=1:1354
for i=1:2030
if log10(i,j)~=0
X(i,j)=log10(double(log10(i,j)));
end
end
end
Anyone please help me
Thank you
1 件のコメント
採用された回答
Thorsten
2014 年 12 月 18 日
You overwrite Matlabs log10 function with your log10 matrix; rename it and everything should work fine.
5 件のコメント
その他の回答 (2 件)
Azzi Abdelmalek
2014 年 12 月 18 日
Try this
clear log10
U=zeros(2030,1354);
for j=1:1354
for i=1:2030
U(i,j)=R547(i,j)/R531(i,j);
end
end
U(isnan(U)) = 0 ;
for j=1:1354
for i=1:2030
if U(i,j)~=0
X(i,j)=log10(double(U(i,j)));
end
end
end
Star Strider
2014 年 12 月 18 日
Your code can be reduced to this:
R547 = randi(50,10,15); % Created Data
R531 = randi(50,10,15); % Created Data
Log_10 = double(R547./R531); % Do Element-Wise Division
Log_10(1:5:end,1:5:end) = NaN; % Created Data (Insert NaN)
X = log10(Log_10); % Take Logs
X(isnan(X)) = 0; % Set ‘NaN’ Values To Zero
First, please never name your variables the same as built-in MATLAB functions, such as log10. MATLAB will take the most recent definition (as it did in your code) and treat it as a variable rather than a function. I renamed your ‘log10’ array ‘Log_10’ to be sure that you do not ‘overshadow’ the log10 function.
Second, if you need to do element-wise operations, use the dot operators, for instance instead of (/), use (./), (*), use (.*) and (^), use (.^).
Third, the log10 of NaN is NaN, so you only need to test for it and replace it after you do everything else.
参考
カテゴリ
Help Center および File Exchange で Resizing and Reshaping Matrices についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!