How to make for loop to make various mathematical operations. Using matrices.

1 回表示 (過去 30 日間)
Darkhan Kenestegi
Darkhan Kenestegi 2016 年 12 月 15 日
回答済み: Steven Lord 2016 年 12 月 16 日
clear all
clc
magic=magic(5);
t = zeros(size(magic,1),1);
pi = zeros(size(magic,1),size(magic,2));
for i=1:size(magic,1)
    t(i)=sum(magic(i,:));
    pi(i)=magic(i,:)/t(i,1);
end

Above is my code I am currently using for testing. My idea is for every values in the row in magic, divide it by sum of that row (AKA it should be divided by 1 number).

回答 (3 件)

Purushottama Rao
Purushottama Rao 2016 年 12 月 16 日
編集済み: Purushottama Rao 2016 年 12 月 16 日
If it is a magic matrix, then its fairly simple..
m=magic(5);
s=sum(m);
ans= m/s(1)

José-Luis
José-Luis 2016 年 12 月 16 日
your_array = magic(5); %don't use a built-in function as a variable name
your_result = bsxfun(@rdivide,your_array, sum(your_array,2));

Steven Lord
Steven Lord 2016 年 12 月 16 日
If you're using release R2016b or later, you can use implicit expansion.
M = magic(5);
Y = M./sum(M, 2);

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by